Java学习之do---while语句

举报
指剑 发表于 2022/09/03 00:29:37 2022/09/03
【摘要】 do—while 1 /*do-while结构如下 do{ 循环体 } while(条件表达式) 特点:无条件的执行一次循环体,再来判断条件表达式的值,至少循环一次*/ import jav...

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));
    	}
    }

文章来源: blog.csdn.net,作者:指剑,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fly1574/article/details/90745322

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。