break 和 continue
让 i 从 1 循环到 5。当 i 等于 3 时,在写出之前用 break 离开循环。屏幕应只显示两行:1,再 2。这种提前停下是本页的一种工具。另一种工具是 continue:它跳过一轮,然后继续循环,于是 3 不写出,但 4 和 5 仍会写出。请保留公共类名 Pine。
break 提前结束循环
打开 Pine 文件。类名保持 Pine。本页不重命名类型。若仍有只计数的普通 while,请删掉。若有没有 if、不会提前停下的普通 for,而你只想保留本页演示,也请删掉。删掉任何 ReadLine 行。你保留的文件不等待输入,屏幕只由写出语句写出——且仅在 if 为 false 时运行。
在 Main 里,写一个可以提前停下的 for:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
Console.WriteLine(i);
}
for 行头仍是你熟悉的形状:起始、条件、步进。花括号里,一个 if 询问 i 是否等于 3。为 true 时,break; 运行。break 立刻离开整个 for 循环。if 下方的写出语句本轮不运行,并且 i 在这个循环里到不了 4 或 5。当 i 是 1 或 2 时,if 为 false,于是 Console.WriteLine(i) 写出数字。请保存文件。
你保留的文件
保持这种教学形状。一个从 1 到 5 的 for。一个运行 break; 的 if (i == 3)。if 之后一条写出语句,写出裸名 i。你保留的文件里没有 continue,也没有给 break 加引号。
using System;
public class Pine
{
public static void Main()
{
for (int i = 1; i <= 5; i = i + 1)
{
if (i == 3)
{
break;
}
Console.WriteLine(i);
}
}
}
从上往下读。using System; 准备短名。public class Pine 命名类型。public static void Main() 是运行时入口。for 让 i 从 1 走向 5。当 i 为 3 时,break; 结束循环。屏幕两行:1,再 2。没有第三行。
用 dotnet run 运行。程序写出两行然后结束。它不等你输入。若 dotnet run 卡住,说明文件里还有 ReadLine。删掉那一行,保留上面带 break 的 for。屏幕显示 1,再 2。若屏幕显示五行,说明缺了 break,或 if 从未匹配。若屏幕显示字母 break,说明写出语句给这个词加了引号。不要因为屏幕行不对就重装 .NET SDK。
按顺序走完 break 这次运行。i 从 1 起。if 为 false,写出语句写出 1。步进存成 2。if 仍为 false,写出语句写出 2。步进存成 3。此时 i == 3 为 true,于是 break 运行,for 结束。3、4、5 什么都不写出。没有 break 的普通循环会写出五行;break 在两次写出之后截断了循环。本轮在 break 之后步进不再运行,条件也不再询问,因为循环已经结束。
continue 跳过一轮
改循环体,用 continue 替换 break,并让写出语句仍留在 if 之后:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
Console.WriteLine(i);
}
当 i 等于 3 时,continue; 跳过本轮剩余部分——包括写出语句——然后 for 继续步进与下一次条件检查。循环本身并不结束。屏幕应显示四行:1、2、4 和 5。空缺处正是本该写出 3 的位置。
using System;
public class Pine
{
public static void Main()
{
for (int i = 1; i <= 5; i = i + 1)
{
if (i == 3)
{
continue;
}
Console.WriteLine(i);
}
}
}
这是第二个文件,不是你保留的文件。运行 dotnet run。屏幕显示四行。你没有改 for 行头——只是把 break 换成了 continue。看过四行之后,改回保留文件:if 里面仍是 break。两个版本都是合法 C#。它们在同一个循环形状里教两种不同的提前动作。
再读一遍 continue 这次运行。i 走过 1、2、3、4、5。对 1 和 2,if 为 false,数字写出。对 3,continue 跳过写出语句。对 4 和 5,数字再次写出。当 i 变成 6 时,循环仍按平常条件停下。continue 从不结束 for;它只跳过一轮的剩余部分。continue 之后,for 仍会执行步进 i = i + 1,所以即使本轮没写出,计数器也会继续前进。
📊 tool and the screen
| Tool at i == 3 | Screen |
|---|---|
| break | 1 then 2 |
| continue | 1 then 2 then 4 then 5 |
把表格当作运行之后的核对,而不是代替运行。break 留下两行。continue 留下四行,且缺少 3。若你本意是 continue 却仍看见 3,写出语句多半写在了 if 上方——把 Console.WriteLine(i) 移到 continue 下方,让跳过能够触及它。先修正顺序,不要重装 .NET SDK。
让两种工具保持清楚的规则
break 与 continue 属于循环体内部。在 Main 里单独写 break;、却没有包围它的 for 或 while,build 会报错。continue; 也一样。本页用一个 if 选定时机:当 i 等于 3。以后你可以写别的条件;演示保留 i == 3,好让屏幕变化容易看见。
break 不是 continue。break 结束循环。continue 跳过一轮并留在循环里。更早一页里,switch 中的 break 结束一个 case;这里包围它的结构是 for。不要在同一个 Main 里留下只计数的普通 while,或没有 if 的普通 for,却奇怪为什么从 1 到 5 每个数仍会写出。本课的 Main 应保留那个 for,加上带 break 或 continue 的 if。
常见混淆是写出这个词本身:Console.WriteLine("break");。那会写出字符 break,并不会停下循环。另一种混淆是把 Console.WriteLine(i); 放在持有 continue 的 if 之前,于是 3 仍会写出,随后 continue 运行时已没有可跳过的内容。两个演示都把写出语句留在 if 之后。若写出没有包围循环的 continue,build 会报错;循环外单独的 break 也一样。在本课形状里,这两个词只在循环体内部才说得通。
现在你可以在循环里放入 break 以提前离开,或放入 continue 以跳过一轮并继续。一个 if 可以选定时机。下一页是 foreach:循环会走过集合里的每个值,而不必用同样方式亲手写出起始、条件与步进。
屏幕就是提前动作
你保留的文件写出 1,再 2。单词 break 在文件里,却不出现在屏幕上。第二个文件写出四行,且缺少 3。给 break 加引号只会写出字母,不会造成提前停下。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部