Java里的while循环就像每天早晨的闹钟,只要条件满足就会一直响个不停,直到把它关掉为止。
while循环就像重复做同一件事
想象一下在玩投篮游戏,只要篮筐里还有位置,就要一直往里投球。用while循环写出来是这样的:
int 篮筐容量 = 5;
int 投球次数 = 0;
while (投球次数 < 篮筐容量) {
System.out.println("第" + (投球次数 + 1) + "个球投进啦!");
投球次数++;
}
System.out.println("篮筐满啦,不能再投了!");
代码解析:
while
后面的括号里是条件,就是判断篮筐还有没有空位。- 大括号里的代码块就是要重复执行的动作。
投球次数++
这个很重要,每次循环都让计数器加1,不然就会变成无限循环。- 当条件不满足时,循环就结束,执行后面的语句。
案例解析
猜数字游戏
编写一个程序,实现经典的小游戏,让电脑随机出一个1 ~ 100的整数,来猜这个数字。
# 源文件保存为“GuessNumber.java”。
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static void main(String[] args) {
Random rand = new Random();
int number = rand.nextInt(100) + 1; // 1-100的随机数
Scanner scanner = new Scanner(System.in);
int count = 0;
boolean right = false;
System.out.println("我想了个1-100的数字,猜猜看?");
while (!right) {
System.out.print("你的猜测:");
int guessNumber = scanner.nextInt();
count++;
if (guessNumber > number) {
System.out.println("太大啦!");
} else if (guessNumber < number) {
System.out.println("太小啦!");
} else {
right = true;
System.out.println("恭喜!你用了" + count + "次猜对了!");
}
}
scanner.close();
}
}
运行结果
依次输入猜测的数字,会得到:
我想了个1-100的数字,猜猜看?
你的猜测:50
太大啦!
你的猜测:25
太大啦!
你的猜测:13
太大啦!
你的猜测:5
太小啦!
你的猜测:9
太小啦!
你的猜测:11
恭喜!你用了6次猜对了!
这个游戏中,while (!right)
是循环条件,只要没猜对就一直循环。每次循环都让玩家输入一个数字,然后给出提示。
智能电饭煲煮饭程序
想象一下电饭煲煮饭,它会一直煮饭直到水分收干。用while循环模拟这个过程特别形象:
# 源文件保存为“RiceCooker.java”。
public class RiceCooker {
public static void main(String[] args) {
double water = 100; // 单位:毫升
int time = 0; // 单位:分钟
System.out.println("开始煮饭...");
while (water > 0) {
water -= 8.5; // 每分钟蒸发8.5ml
time++;
System.out.println("第" + time + "分钟,剩余水量:"
+ (water > 0 ? water : 0) + "ml");
}
System.out.