/*
随机生成一个100以内的数,猜这个随机数是多少?
从键盘输入数,如果大了,提示大了;如果小了,提示小了;如果对了,就不在猜了,并统计一共猜了多少次。
提示:生成一个[a,b]范围的随机数的方式:(int)(Math.random() * (b - a + 1) + a)
*/
import java.util.Scanner;
class WhileTest1{
public static void main(String[] args) {
//1、生成一个[1,100]范围的随机整数。
int random = (int)(Math.random() * 100) + 1;
//2、使用Scanner,从键盘获取数据
Scanner scan = new Scanner(System.in);
System.out.print("请输入1-100范围内的一个整数:");
int guess = scan.nextInt();
//3、声明一个变量,记录猜的次数
int guessCount = 1;
//4、使用循环结构,进行多次循环的对比和获取数据
while (random != guess){
if (guess > random){
System.out.println("你输入的数据大了");
}else if (guess < random){
System.out.println("你输入的数据小了");
}/*else{
break;
}*/
System.out.print("请输入1-100范围内的一个整数:");
guess = scan.nextInt();
guessCount++;
}
//能结束循环,就意味着random和guess相等了
System.out.println("恭喜你!猜对了!");
System.out.println("共猜了" + guessCount + "次");
scan.close();
}
}
运行结果如下:
/*
世界上最高山峰是珠穆朗玛峰,它的高度是8848.86米,假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
*/
class WhileTest2 {
public static void main(String[] args){
//1、声明珠峰的高度、纸的默认厚度
double paper = 0.1; //单位:毫米
double zf = 8848860; //单位:毫米
//2、定义一个变量,记录折纸的次数
int count = 0;
//3、通过循环结构,不断调整纸的厚度(当纸的厚度超过珠峰高度时,停止循环)
while (paper <= zf){
paper *= 2;
count++;
}
System.out.println("paper的高度为: " + (paper / 1000) + ",超过了珠峰的高度" + (zf / 1000));
System.out.println("共折纸" + count + "次");
}
}
运行结果如下: