Java基础练习之流程控制(三)

17、3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?不考虑小数。

public static void main(String[] args) {
		int day = 0;
		for (int x = 3000; x >= 5; x /= 2) {
			day++;
		}
		System.out.println("day=" + day);
		/*
		 * 方法二: 
		 * day = 0; 
		 * for(int x=3000; x>=5; day++) { 
		 * 		x = x/2; 
		 * }
		 * System.out.println(day);
		 */
}

在这里插入图片描述

18、写出结果

public static void main(String []args){ 
			int i = 0, j = 5; 
			tp: for (;;){ 
				i++; 
				for(;;){
					if(i > j--)
						break tp; 
				}
			} 
			System.out.println("i = " + i + ", j = "+ j);   
		} 

在这里插入图片描述

19、猜数字游戏

随机生成一个100以内的数,猜数字游戏:
从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次?

提示:随机数

import java.util.Random;
Random rand = new Random();
int num= rand.nextInt(100);

代码1:

import java.util.Random;
import java.util.Scanner;

public class TestDoWhileLoop{
	public static void main(String[] args){
		//1、随机产生一个100以内的整数
		Random rand = new Random();
		//int num = rand.nextInt();//产生的是任意大小的整数
		int num = rand.nextInt(100);//产生[0,100)的整数
		//System.out.println(num);
		
		//2、键盘输入
		Scanner input = new Scanner(System.in);
		
		//声明变量
		int guess;
		int count = 0;
		do{
			//循环体至少执行一次
			System.out.print("请输入一个整数:");
			guess = input.nextInt();//为变量赋值
			
			count++;//输入一次,计数一次
			
			if(guess>num){
				System.out.println("大了");
			}else if(guess < num){
				System.out.println("小了");
			}else{
				System.out.println("猜对了");
			}
		}while(guess != num);
		
		System.out.println("一共猜了:" + count + "次");
	}
	
}

在这里插入图片描述
代码2:

import java.util.Random;
import java.util.Scanner;

public class TestDoWhileLoop{
	
	public static void main(String[] args) {
		Random rand = new Random();
		int num= rand.nextInt(100);
		Scanner input = new Scanner(System.in);
		int count =0 ;
		do{
			count++;
			System.out.println("请猜:");
			int temp = input.nextInt();
			if(temp<num){
				System.out.println("小了");
				continue;
			}
			if(temp>num){
				System.out.println("大了");
				continue;
			}
			if(temp == num){
				break;
			}
		}while(true);
		System.out.println("总共猜了"+count+"次");
	}

	
}

在这里插入图片描述

20、打印1-100之间数,其中3、5、7的倍数不打印(continue)

public class TestContinue {
	public static void main(String[] args) {
		//打印1-100之间数,其中3、5、7的倍数不打印
		for(int i=1; i<=100; i++){

			if(i%3==0 | i%5==0 | i%7==0){
				
				//跳过下面的打印语句,提前进入下一次循环,即i++语句
				continue;
			}
			
			//下面这部分循环体语句,有些情况下需要跳过
			System.out.println(i);
		}
		System.out.println("over");
	}
}

在这里插入图片描述

21、输入两个正整数m和n,求其最大公约数和最小公倍数

public static void main(String []args){ 
		
		Scanner input = new Scanner(System.in);
		System.out.println("输入m:");
		int m = input.nextInt();
		System.out.println("输入n:");
		int n = input.nextInt();
		
		//获取m和n的较大值
		int max = (m > n)? m : n;
		
		//获取m和n的较小值
		int min = (m < n)? m : n;

		//求m和n的最大公约数
		for(int i = min;i >= 1;i--){
			if( m % i == 0 && n % i == 0){
				System.out.println("m和n的最大公约数是:" + i);
				break;
			}
		}
	
		//求m和n的最小公倍数
		for(int i = max;i <= m * n;i++){
			if( i % m == 0 && i % n == 0){
				System.out.println("m和n的最小公倍数是:" + i);
				break;
			}
		}

	}

在这里插入图片描述

22、已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E

90~100为等级A,
80~89为等级B,
70~79为等级C,
60~69为等级D,
0~59为等级E。
要求定义一个成绩变量,当成绩变化时,可直接知道该成绩对应的等级。
例如:当成绩为100时,该学生的等级是A。

package myP101;

public class LevelDemo{
	//定义一功能,通过给定分数,获取该分数对应的等级。
	public static void main(String[] args){
		int num = 89;
		if(num>=90 && num<=100)
			System.out.println("level = A");
		else if(num>=80 && num<=89)
			System.out.println("level = B");
		else if(num>=70 && num<=79)
			System.out.println("level = C");
		else if(num>=60 && num<=69)
			System.out.println("level = D");
		else
			System.out.println("level = E");
		
	}
}

在这里插入图片描述

23、打印自然数的个数

1)打印1~100之间 6的倍数的个数
2)求出1~100之间,既是3又是7的倍数的自然数出现的次数?

public static void main(String[] args) {
		int count1 = 0,count2 = 0;
		for (int x = 1; x <= 100; x++) {
			if (x % 6 == 0){
				count1++;
			}
			if(x % 3 == 0 && x % 7 == 0){
				count2++;
			}
			
		}
		System.out.println("count1=" + count1);
		System.out.println("count2=" + count2);

	}

在这里插入图片描述

24、求调和级数中从第多少项开始值大于10

调和级数的第n项形式为:

1+1/2+1/3++1/n
public static void main(String[] args) {
		double sum = 0.0;
		int i = 1;
		while (true) {
			sum += 1.0 / i;
			if (sum > 10) {
				break;
			}
			i++;
		}
		System.out.println(i);
	}

在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BugMiaowu2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值