正在加载...

while 循环

int k = 1; 在任何循环之前先存下 1。接着 while (k <= 3) 只要该条件为 true 就继续。花括号里,Console.WriteLine(k) 写出当前数字,k = k + 1 再把 k 存成多一。屏幕显示三行:1,再 2,再 3。请保留公共类名 Pine。

起始在外,条件在 while,步进在内

打开 Pine 文件。类名保持 Pine。本页不重命名类型。若仍有 for 循环,请删掉,包括 for (int n = 1; n <= 3; n = n + 1),以及任何把起始-条件-步进挤在一行头的写法。若仍有 int choice 行,请删。删掉任何 ReadLine 行。你保留的文件不等待输入,没有带三件事的 for 行头,也没有 switch。屏幕只由 while 花括号里的写出语句写出。

在 Main 里,先存下计数器:int k = 1;。那一行不在 while 里面。它只是把 k 从 1 起。然后是循环:
while (k <= 3) {
Console.WriteLine(k);
k = k + 1;
}
单词 while 全小写。括号里只坐着条件:k <= 3。那对括号里没有起始,也没有步进——这和你之前见过的 for 行不同。花括号同时包住写出语句和步进。Console.WriteLine(k); 写出当前数字,k 两侧不加引号。接着 k = k + 1; 把 k 存成多一,好让之后的条件终于能变成 false。请保存文件。

你保留的文件

保持这种教学形状。循环上方一条存值行,int k = 1;。一个 while,括号只围住条件。花括号里一条写出语句。花括号里一条步进,k = k + 1;。没有 for 行头,没有上一页的计数器 n,k 两侧也没有引号。

k from 1 to 3

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int k = 1;
        while (k <= 3)
        {
            Console.WriteLine(k);
            k = k + 1;
        }
    }
}

从上往下读。using System; 准备短名。public class Pine 命名类型。public static void Main() 是运行时入口。int k = 1; 存下 1。while (k <= 3) 询问条件。Console.WriteLine(k); 写出当前的 k。k = k + 1; 推动计数器。屏幕三行:1,再 2,再 3。你保留的文件里没有 for 行。

用 dotnet run 运行。程序写出三行然后结束。它不等你输入。计数器和 while 本来就写在文件里。若 dotnet run 卡住,说明还有 ReadLine,删掉它,保留上面的 int k = 1; 和 while。屏幕显示 1,再 2,再 3。若屏幕永不停止、一直写出 1,说明花括号里缺了步进。把 k = k + 1; 放回去。若屏幕像残留的 for 风格运行,删掉 for 行头。若每行都是字母 k,说明写出语句加了引号:Console.WriteLine("k");。不要因为屏幕行不对就重装 .NET SDK。

按顺序走完一整轮。k 在 while 之前从 1 起。条件 k <= 3 为 true,于是循环体运行:写出语句写出 1,接着步进存成 2。条件仍为 true:写出 2,存成 3。条件仍为 true:写出 3,存成 4。此时 k <= 3 为 false,循环结束。起始只在循环上方跑一次。条件在每轮之前检查。步进在每轮写出之后、花括号里面执行。那三件事与 for 是同一套想法,只是没有挤进一行头。若你删掉 k = k + 1;,让 k 永远停在 1,条件会一直为 true,同一行可以不停写出——正因如此,本页把步进放在循环体里。

把条件放宽

只改条件,让循环再多走一步:while (k <= 4)。起始和步进保持原样。现在屏幕应显示四行:1、2、3 和 4。

k from 1 to 4

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int k = 1;
        while (k <= 4)
        {
            Console.WriteLine(k);
            k = k + 1;
        }
    }
}

这是第二个文件,不是你保留的文件。运行 dotnet run。屏幕显示四行。你没有重写写出语句或步进——只改了 while (…) 里的条件。看过四行之后,改回保留文件:k <= 3 以及同一循环体。两个版本都是合法 C#。它们用同一个 while 形状、不同的停止点来教。

再读一遍四行这次运行。k 从 1 起。每次条件为 true 就写出当前的 k,再加 1。当 k 变成 5 时,条件失败,循环停下。本演示里数字 5 不会出现在屏幕上,因为循环体只在条件仍为 true 时运行。

📊 k and the first demo screen

k before WriteLine Screen line
1 1
2 2
3 3

把表格当作第一演示之后的核对,而不是代替运行。在那次演示里,每次写出之前,k 存的就是将出现在该行的数字。第三次写出之后,步进存成 4,条件失败。若某个没有步进的版本让屏幕永不停止,把 k = k + 1; 放回花括号里——不要重装 .NET SDK。

让 while 保持清楚的规则

条件外侧的括号是必需的。写成 while k <= 3 { … } 没有括号时,build 会报错。本页循环体始终放在花括号里,因为每轮有两行:写出语句和步进。若把步进放在右花括号之后,它只在循环结束后跑一次——循环里面的 k 永不改变,循环就可能永远跑下去。两个演示都把步进留在花括号里。

while 不是 for,也不是 switch。for 把起始、条件和步进挤进一行头。while 只让条件独占行头,起始和步进要你自己安放。switch 在 case 标签之间选一次。不要把 for 循环或 switch 留在同一个 Main 里,却奇怪为什么屏幕是 for 风格的行头残留或单词 mid。本课的 Main 应只保留那个 int 和那个 while。

常见混淆是写出语法本身:Console.WriteLine("while");。那会写出字符 while,并不会重复。另一种混淆是给 k 加引号:Console.WriteLine("k"); 每轮写出字母 k。想让计数器上屏时,请保留无引号的 Console.WriteLine(k)。若第一次到达 while 时条件已经为 false——例如 k 从 5 起而条件是 k <= 3——循环体永不运行,屏幕保持空白。那仍是合法的 while;本课演示保留至少为 true 一次的条件,好让你看见写出的行。

现在你可以在 while 上方启动计数器,把条件放进 while (…),并把写出语句与步进都留在花括号里。改条件会改你得到多少行。下一页是 break 与 continue,你可以提前离开循环,或跳过一轮而不结束整个循环。

屏幕就是变化中的计数器

你保留的文件写出 1,再 2,再 3。名字 k 在写出语句里,字母 k 不上屏。起始坐在 while 上方,也不会出现在屏幕上。给 k 或 while 加引号只会写出字母,不会走出计数器那条路径。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
6
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部