java do -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("请输入正整数: "); n=buf.nextInt(); }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 = buf.readLine();//将输入的数据赋值给字符串变量str1 a=Integer.parseInt(str1);//将str1转换成int类型数据后赋值给a System.out.println("请输入第二个数b= "); str2=buf.readLine();//将输入的数据赋值给字符串变量str2 b=Integer.parseInt(str2);//将str1转换成int类型数据后赋值给b System.out.println("gcd("+a+","+b+")="); do{ k=a%b; 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: "); m=reader.nextInt(); }while(m<=1);//此处若输入的数字小于或等于一,会无限循环提示输入大于1的数m while(s<m)//判断n!<是否成立 { s*=n;//计算s=n n++; } System.out.println("s="+s/(n-1)+" n="+(n-2)); } }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM