循环控制:for / while / do-while
计算机最擅长的就是重复劳动。本节学习三种循环语句:for、while、do-while,以及 break 和 continue 两个控制关键字。
一、for 循环
语法结构:
for (初始化; 条件判断; 步进) {
// 循环体
}
for (int i = 1; i <= 5; i++) {
System.out.println("第 " + i + " 次循环");
}
执行流程:
for 循环适合循环次数确定的场景,比如遍历数组、计数。
常用变体
// 倒序
for (int i = 10; i >= 1; i—) {
System.out.println(i);
}
// 步进为 2(打印偶数)
for (int i = 2; i <= 10; i += 2) {
System.out.println(i);
}
// 循环变量在循环外定义
int i;
for (i = 0; i < 10; i++) {
// …
}
二、while 循环
while (条件) {
// 循环体
}
先判断,后执行。条件为 false 时一次都不执行。
int i = 1;
while (i <= 5) {
System.out.println(i);
i++; // 别忘了改变循环条件,否则死循环
}
while 适合循环次数不确定的场景,比如一直读取输入直到输入结束、随机猜数。
三、do-while 循环
do {
// 循环体
} while (条件);
先执行一次,再判断。无论条件真假,循环体至少执行一次。
int i = 10;
do {
System.out.println("至少执行一次:" + i);
i++;
} while (i < 5);
// 输出一次:至少执行一次:10
典型应用:菜单系统——先显示菜单,用户选择后再判断是否继续。
四、三种循环对比
| 判断时机 | 先判断 | 先判断 | 后判断 |
| 最少执行次数 | 0 次 | 0 次 | 1 次 |
| 适用场景 | 次数确定 | 次数不确定 | 至少执行一次 |
三者可以互相转换,选最贴合场景的即可。
五、break 与 continue
break:立即终止整个循环
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // 循环到此为止
}
System.out.print(i + " "); // 输出:1 2 3 4
}
continue:跳过本次循环,继续下一次
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // 偶数跳过,不打印
}
System.out.print(i + " "); // 输出:1 3 5 7 9
}
嵌套循环中的标签 break(了解)
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) {
break outer; // 直接跳出外层循环
}
System.out.println(i + "," + j);
}
}
// 只输出 0,0
实际开发中标签 break 很少用,能用方法封装就尽量不用。
六、循环经典练习
1. 计算 1 到 100 的和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1+2+…+100 = " + sum); // 5050
2. 打印九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + (i * j) + "\\t");
}
System.out.println(); // 换行
}
3. 判断质数
int num = 97;
boolean isPrime = true;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
isPrime = false;
break; // 已确定不是质数,提前结束
}
}
System.out.println(num + (isPrime ? " 是质数" : " 不是质数"));
七、死循环与规避
// 经典死循环
while (true) {
// 配合 break 使用
}
死循环常用于事件监听、服务器等待请求等场景,必须保证内部有跳出条件。普通循环写死循环(如忘记 i++)是常见 bug。
八、小结
- for 适合次数确定,while 适合次数不确定,do-while 至少执行一次
- break 结束整个循环,continue 跳过本次
- 循环变量要在循环体内被更新,避免死循环
- 嵌套循环注意内外层变量的命名区分
下一节学习数组。
网硕互联帮助中心


评论前必须登录!
注册