javado-while三种⽤法
do—while 1
/*do-while结构如下
do{
循环体
}
while(条件表达式)
特点:⽆条件的执⾏⼀次循环体,再来判断条件表达式的值,⾄少循环⼀次*/
import java.util.*;
public class dh1
{
public static void main(String[] args) {
int n,i=1,sum=0;
Scanner buf = new Scanner(System.in);
do{
System.out.println("请输⼊正整数: ");
Int();
}while(n<=0);
while(i<=n)
sum+=i++;
System.out.println("1+2+3+...+"+n+"="+sum);
}
}
do—while 2
//filename dh2.java 使⽤辗转相除法求2个整数的最⼤公约数
/设有不全为0的整数a和b,他们的最⼤公约数⼏位gcd(a,b),即同时能整除a和b的公因数中的最⼤者,按照欧⼏⾥得的辗转相除法,gcd(a,b)有如下性质
①gcd(a,b)=gcd(b,a)
②gcd(a,b)=gcd(-a,b)
③gcd(a,0)=|a|
④gcd(a,b)=gcd(b,a%b),0<=a % b<b
本例中,反复运⽤性质④,最终使得第⼆个参数a%b等于0,则第⼀个参数就是所求的最⼤公约数/
import java.io.*;
public class dh2
{
public static void main(String[] args) throws IOException {
int a,b,k;
String str1,str2;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输⼊第⼀个数a= ");
str1 = adLine();//将输⼊的数据赋值给字符串变量str1
a=Integer.parseInt(str1);//将str1转换成int类型数据后赋值给a
System.out.println("请输⼊第⼆个数b= ");
adLine();//将输⼊的数据赋值给字符串变量str2
b=Integer.parseInt(str2);//将str1转换成int类型数据后赋值给b
System.out.println("gcd("+a+","+b+")=");
do{
k=a%b;
do while语句怎么用a=b;
b=k;
}while(k!=0);//若余数k不等于0,则继续进⾏下⼀次循环
System.out.println(a);
}
}
do—while 3
/
已知s=n!,其中n为正整数,从键盘上任意输⼊⼀个⼤于1的正整数m,求满⾜s>m时的最⼤s,以及此时的n,并输出s和n的值/
//filename dh3.java
import java.util.*;
public class dh3
{
public static void main(String[] args) {
int n=1,s=1,m;
Scanner reader = new Scanner(System.in);
do{
System.out.print("请输⼊⼤于1的正整数m: ");
Int();
}while(m<=1);//此处若输⼊的数字⼩于或等于⼀,会⽆限循环提⽰输⼊⼤于1的数m      while(s<m)//判断n!<;是否成⽴
{
s*=n;//计算s=n
n++;
}
System.out.println("s="+s/(n-1)+"  n="+(n-2));
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。