在编程中,我们经常需要重复执行某段代码。比如打印1到10的数字、计算1到100的和等。Java提供了while循环来实现这种“重复执行”的需求。while循环的核心思想是:只要条件满足,就一直执行循环体,直到条件不满足为止。
一、while循环的基本语法¶
while循环的结构非常简单,基本格式如下:
while (条件表达式) {
// 循环体:当条件为true时执行的代码
}
- 条件表达式:必须是一个布尔值(
true或false)。只有当条件为true时,循环体才会执行。 - 循环体:被重复执行的代码块(如果只有一行代码,大括号
{}可以省略,但建议始终加上,避免错误)。
二、为什么需要循环?¶
假设要打印1到5这5个数字,不用循环的话,需要写5行System.out.println():
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
但如果要打印1到1000,手动写1000行代码显然不现实。这时候while循环就能派上用场:只需要几行代码,就能自动重复执行。
三、实例1:打印1到5¶
需求:打印1到5这5个数字。
思路:
1. 定义一个变量i,初始化为1(表示当前要打印的数字);
2. 用while循环判断:只要i小于等于5,就执行打印;
3. 每次打印后,i自增1(否则i永远是1,条件永远成立,导致死循环)。
代码:
public class WhileExample {
public static void main(String[] args) {
int i = 1; // 初始化变量i,从1开始
while (i <= 5) { // 条件:i是否小于等于5?
System.out.println(i); // 打印当前i的值
i++; // i自增1(关键!否则条件永远成立,变成死循环)
}
}
}
输出:
1
2
3
4
5
四、实例2:计算1到10的和¶
需求:计算1+2+3+…+10的总和。
思路:
1. 定义变量sum初始化为0(用于累加结果);
2. 定义变量i初始化为1(从1开始累加);
3. 用while循环:只要i小于等于10,就执行sum += i(累加当前i的值到sum),然后i自增1。
代码:
public class SumExample {
public static void main(String[] args) {
int sum = 0; // 总和初始值为0
int i = 1; // 从1开始累加
while (i <= 10) { // 条件:i是否小于等于10?
sum = sum + i; // 等价于 sum += i
i++; // i自增1,避免死循环
}
System.out.println("1到10的和是:" + sum); // 输出结果
}
}
输出:
1到10的和是:55
五、注意事项:避免死循环!¶
while循环最常见的错误是死循环——循环体永远执行,导致程序无法结束。出现死循环的原因通常是:
1. 条件表达式永远为true:比如while (i <= 5)写成了while (i < 5),但i从未自增,导致条件永远成立。
2. 循环体内没有修改条件的变量:比如i++忘记写,导致i始终是1,条件永远成立。
示例:死循环(错误示范):
int i = 1;
while (i <= 5) {
System.out.println(i);
// 错误!忘记写i++,i永远是1,条件永远成立
}
解决办法:确保循环体中包含能让条件表达式最终变为false的逻辑(比如i++)。
六、补充:do-while循环(扩展)¶
如果需要至少执行一次循环体(比如用户输入密码,需要先输入再判断是否正确),可以用do-while循环。它的特点是:先执行循环体,再判断条件。
语法:
do {
// 循环体(至少执行一次)
} while (条件表达式);
示例:
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5); // 先执行循环体,再判断条件(即使条件初始为false,也会执行一次)
输出:1、2、3、4、5(和while循环结果相同,但逻辑不同)。
七、总结¶
while循环用于条件满足时重复执行代码,核心是“先判断,再执行”。- 语法结构:
while (条件) { 循环体 },必须确保循环体中修改条件,避免死循环。 - 关键场景:打印序列、累加求和、重复任务(如用户输入验证)等。
多练习简单的循环实例,比如打印1到100、计算1到100的和,就能熟练掌握while循环的使用啦!