1. 引言
想象你有个任务:在屏幕上输出 “你好!” 10 次。当然,你也可以写 10 行 System.out.println("你好!");——不过你已经学过 while 循环,所以不成问题。
不过还有另一种循环——for,它会把所需的动作重复指定的次数。而且还能自己计数!
这是一个典型示例:
for (int i = 0; i < 10; i++)
{
System.out.println("你好!");
}
经典的
for 循环——输出
"你好!" 10 次
这段代码做了什么?它会在屏幕上准确输出 “你好!” 恰好 10 次。无需复制粘贴,也不用手腕酸痛。
2. for 循环的语法
for 循环由三个主要部分组成,它们被写在关键字 for 后的圆括号中:
for (初始化; 条件; 更新)
{
// 循环体
}
for 循环的一般语法
下面逐一说明各个部分:
- 初始化——通常是创建一个计数器变量,用它来记录重复次数(int i = 0)。
- 条件——每次迭代前的检查。如果为真——执行循环体;如果为假——循环结束。比如 i < 10。
- 更新——在每次迭代之后执行的操作。通常是增加或减少计数器的值(i++)。
可以画一张示意图:
3. for 与 while 的对比
也许这样说更直观:for 其实就是 while 循环的另一种写法。
先看一段 while 循环:
int i = 0; // 为循环初始化变量
while(i<10) // 检查是否继续循环的条件
{
System.out.println(i); // 有用的操作(循环体)
i++; // 计数器递增
}
我们可以把它改写为 for 循环,只需把控制循环逻辑的动作移到对应的位置:
for (int i = 1; i <= 10; i++) // 初始化;检查条件;计数器递增
{
System.out.println(i); // 有用的操作(循环体)
}
两个循环的执行步骤:
- 初始化 int i = 0; 在进入循环前执行一次。
- 然后检查条件 i <= 10。
- 接着执行循环的有用操作 System.out.println(i);。
- 随后更新计数器 i++。
- 然后回到步骤 2。
4. for 循环的使用示例
最简单的示例
输出 1 到 5:
for (int i = 1; i <= 5; i++)
{
System.out.println(i);
}
输出:
1
2
3
4
5
注意:如果写成 i < 5,最后一次输出将是 4。
倒计时
想体验一下当宇航员的感觉吗?我们来做个倒计时!
for (int i = 5; i > 0; i--)
{
System.out.println(i);
}
System.out.println("出发!");
输出:
5
4
3
2
1
出发!
步长不为 1
计数器不仅可以每次加 1,也可以加上任意其他数:
for (int i = 0; i <= 10; i += 2)
{
System.out.println(i);
}
// 将输出: 0 2 4 6 8 10
5. for 循环的变体
循环中的多个变量
有时需要同时跟踪两个变量。比如,同时从右到左和从左到右输出数字:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
System.out.println(left + " " + right);
}
输出:
1 10
2 9
3 8
...
10 1
无限 for 循环
在某些极端情况下(例如你的项目是 IT 领域的“永动机”),可以写一个“永恒”的 for 循环:
for (;;) // 没有初始化、没有条件、也没有更新
{
System.out.println("工作、工作、再工作!");
}
无限的
for 循环
注意:这种循环只会在循环体内出现 break、return 或 throw 时才会结束。不要无缘无故地使用它,否则可能会唤醒上古恶魔——“进程无响应”。
GO TO FULL VERSION