跳到主要内容

C# while和do...while循环

提示
  1. 循环的概念:在 C# 中,whiledo...while 循环用于重复执行一段代码,直到满足某个条件。
  2. while vs. do...whilewhile 循环在执行循环体前检查条件,而 do...while 循环至少执行一次循环体,然后检查条件。
  3. 无限循环:当循环的测试表达式永远不为 false 时,whiledo...while 循环会变成无限循环,这在需要持续执行某个操作时很有用。

在编程中,我们经常需要多次执行特定的语句块。一种可能的解决方案是将这些语句重复需要的次数。然而,重复的次数可能无法提前知道(在编译时)或可能非常多(比如 10000 次)。

对于这类问题的最佳解决方案是使用循环。在编程中,循环用于重复执行某个语句块,直到满足某些条件。

在这篇文章中,我们将学习在 C# 中如何使用 while 循环。

C# while 循环

while 关键字用于在 C# 中创建 while 循环。while 循环的语法是:

while (测试表达式)
{
// while 的主体
}

while 循环是如何工作的?

  1. C# while 循环包含一个 测试表达式
  2. 如果 测试表达式 计算结果为 true
  3. while 循环内的语句将被执行。
  4. 执行后,测试表达式 会再次被计算。

如果 测试表达式 计算结果为 false,while 循环终止。

while 循环流程图

C# while 循环

示例 1:while 循环

using System;

namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i=1;
while (i<=5)
{
Console.WriteLine("C# 循环:迭代 {0}", i);
i++;
}
}
}
}

当我们运行程序时,输出将是:

C# 循环:迭代 1
C# 循环:迭代 2
C# 循环:迭代 3
C# 循环:迭代 4
C# 循环:迭代 5

最初 i 的值是 1。

当程序执行到 while 循环语句时,

  • 测试表达式 i <=5 被计算。由于 i 是 1 并且 1 <= 5true,它执行了 while 循环的主体。这里,屏幕上打印了带有迭代 1 的行,i 的值增加了 1 变成了 2。
  • 现在,测试表达式 (i <=5) 再次被计算。这次也是,表达式返回 true2 <= 5),所以屏幕上打印了行并且 i 的值增加到 3。
  • 这样继续执行,while 循环一直进行,直到 i 变成 6。此时,测试表达式将计算为 false,因此循环终止。

示例 2:使用 while 循环计算前 5 个自然数的和

using System;

namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i=1, sum=0;

while (i<=5)
{
sum += i;
i++;
}
Console.WriteLine("和 = {0}", sum);
}
}
}

当我们运行程序时,输出将是:

Sum = 15

该程序计算前 5 个自然数的和。

  • 最初 sum 的值初始化为 0。
  • 在每次迭代中,sum 的值更新为 sum+ii 的值增加 1。
  • i 的值达到 6 时,测试表达式 i<=5 将返回 false,循环终止。

让我们看看在给定程序的每次迭代中会发生什么。

最初,i = 1,sum = 0

while 循环执行步骤

迭代次数i 的值i<=5sum 的值
110+1 = 1
221+2 = 3
333+3 = 6
446+4 = 10
5510+5 = 15
66循环终止

所以,sum 的最终值将是 15。

C# do...while 循环

dowhile 关键字用于创建 do...while 循环。它类似于 while 循环,但它们之间有一个主要区别。

在 while 循环中,循环体执行之前会检查条件。在 do...while 循环中,恰恰相反,即条件在循环体执行之后检查。

这就是为什么,不管测试表达式如何,do...while 循环的循环体至少会执行一次。

do...while 循环的语法是:

do
{
// do while 循环的循环体
} while (test-expression);

do...while 循环如何工作?

  1. 首先执行 do...while 循环的循环体。
  2. 然后评估 test-expression
  3. 如果 test-expressiontrue,循环体会再次执行。
  4. test-expressionfalse 时,do...while 循环终止。

do...while 循环流程图

C# 中的 Do while 循环

示例 3:do...while 循环

using System;

namespace Loop
{
class DoWhileLoop
{
public static void Main(string[] args)
{
int i = 1, n = 5, product;

do
{
product = n * i;
Console.WriteLine("{0} * {1} = {2}", n, i, product);
i++;
} while (i <= 10);
}
}
}

当我们运行程序时,输出将是:

5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

如我们所见,上述程序打印了一个数(5)的乘法表。

  • 最初,i 的值是 1。然后程序进入 do..while 循环的循环体,而不检查任何条件(与 while 循环相反)。
  • 在循环体内部,计算 product 并在屏幕上打印。然后 i 的值增加到 2。
  • 在执行循环体后,测试表达式 i <= 10 被评估。总共,do...while 循环将运行 10 次。
  • 最后,当 i 的值为 11 时,测试表达式评估为 false,从而终止循环。

无限 while 和 do...while 循环

如果 while 和 do...while 循环中的测试表达式永远不评估为 false,循环体将永远运行。这样的循环被称为无限循环。

例如:

无限 while 循环

while (true)
{
// while 循环体
}

无限 do...while 循环

do
{
// do...while 循环体
} while (true);

当我们需要一个循环在程序运行期间一直运行时,无限循环是有用的。

例如,如果你的程序是一个动画,你将需要不断地运行它,直到它被停止。在这种情况下,无限循环是必要的,以不断重复地运行动画。