• 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));
        	}
        }
    怕什么真理无穷,进一寸有一寸的欢喜!
  • 相关阅读:
    谈谈架构层级的“开闭原则”
    将MySQL数据库中的表结构导入excel 或word
    淘宝网-软件质量属性分析
    架构漫谈阅读有感
    机器学习-分类算法之决策树、随机森林
    机器学习-分类算法之逻辑回归
    机器学习-朴素贝叶斯算法
    机器学习-分类算法之k-近邻
    机器学习-模型选择
    机器学习-scikit-learn数据集
  • 原文地址:https://www.cnblogs.com/wyk96/p/12918825.html
Copyright © 2020-2023  润新知