1. 入门
想象一下,你有个任务:在屏幕上输出“你好!”十次。当然,你可以写十行Console.WriteLine("你好!");——不过你现在已经会用while循环了,这事儿轻松搞定。
不过还有一种循环——for,它能把需要的操作重复指定次数。而且还能自己计数!
来看个典型例子:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("你好!");
}
经典的
for循环——输出"你好!"十次
这段代码干嘛的?它会在屏幕上输出“你好!”正好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) // 检查循环继续的条件
{
Console.WriteLine(i); // 有用的操作(循环体)
i++; // 计数器加一
}
我们可以把它写成for循环,只要把控制循环逻辑的操作都放到一起:
for (int i = 0; i < 10; i++) // 初始化; 检查条件; 计数器加一
{
Console.WriteLine(i); // 有用的操作(循环体)
}
两个循环的执行步骤:
- 初始化int i = 0;,循环前只执行一次。
- 然后检查条件i <= 10
- 然后执行循环体Console.WriteLine(i);
- 然后计数器加一i++
- 然后回到第2步。
4. for循环的使用例子
最简单的例子
我们来输出1到5:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
输出:
1
2
3
4
5
注意:如果你写的是i < 5,最后只会输出到4。
倒计时
想体验下宇航员的感觉吗?来个倒计时!
for (int i = 5; i > 0; i--)
{
Console.WriteLine(i);
}
Console.WriteLine("出发!");
输出:
5
4
3
2
1
出发!
循环步长不为1
计数器不一定只能加1,也可以加别的数:
for (int i = 0; i <= 10; i += 2)
{
Console.WriteLine(i);
}
// 输出:0 2 4 6 8 10
5. for循环的变体
循环里有多个变量
有时候同时跟踪两个变量很方便。比如,我们把数字从左到右、右到左一起输出:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
Console.WriteLine($"{left} {right}");
}
输出:
1 10
2 9
3 8
...
10 1
无限for循环
如果情况特别硬核(比如你的项目是IT里的永动机),可以写个“永远”的for循环:
for (;;) // 没有初始化、没有条件、没有变化
{
Console.WriteLine("工作,工作,再工作!");
}
无限
for循环
注意:这种循环只有在循环体里有break、return或throw时才会结束。没事别乱用,不然可能会召唤出古老恶魔——“进程无响应”。
GO TO FULL VERSION