C# while 和 do...while 循环
C# while 和 do...while 循环
在本文中,我们将了解 C# 中的 while 和 do...while 循环,如何使用它们以及它们之间的区别。
在编程中,通常希望将某些语句块执行指定次数。一种可能的解决方案是将这些语句键入所需的次数。但是,重复次数可能无法提前知道(在编译期间),或者可能不够大(比如 10000)。
此类问题的最佳解决方案是循环。循环在编程中用于重复执行某个语句块,直到满足某个条件。
在本文中,我们将学习在 C# 中使用 while 循环。
C# while 循环
同时 关键字用于在 C# 中创建 while 循环。 while循环的语法是:
while (test-expression) { // body of while }
while 循环是如何工作的?
- C# while 循环由
test-expression
组成 . - 如果
test-expression
被评估为true
,- while 循环中的语句被执行。
- 执行后,
test-expression
再次评估。
- 如果
test-expression
被评估为false
,while 循环终止。
while循环流程图
<图>示例 1:while 循环
using System;
namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i=1;
while (i<=5)
{
Console.WriteLine("C# For Loop: Iteration {0}", i);
i++;
}
}
}
}
当我们运行程序时,输出将是:
C# For Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 5
i 的初始值 是1。
当程序到达while循环语句时,
- 测试表达式
i <=5
被评估。由于 i 是 1 和1 <= 5
是true
,它执行while循环的主体。在这里,该行以迭代 1 打印在屏幕上,并且 i 的值 增加 1 变为 2。 - 现在,测试表达式(
i <=5
) 再次评估。这一次,表达式也返回true
(2 <=5),所以该行打印在屏幕上,并且 i 的值 现在增加到 3.. - 这样,while 循环就会执行,直到 i 变为 6。此时,test-expression 将评估为
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("Sum = {0}", sum);
}
}
}
当我们运行程序时,输出将是:
Sum = 15
该程序计算前 5 个自然数之和。
- sum 的初始值 初始化为 0。
- 在每次迭代中,sum 的值 已更新为
sum+i
以及 i 的值 增加 1。 - 当i的值 达到6,测试表达式
i<=5
将返回 false 并且循环终止。
让我们看看给定程序在每次迭代中会发生什么。
最初,i =1, 总和 =0
迭代 | i 的值 | i<=5 | 总和的值 |
---|---|---|---|
1 | 1 | 是的 | 0+1 =1 |
2 | 2 | 是的 | 1+2 =3 |
3 | 3 | 是的 | 3+3 =6 |
4 | 4 | 是的 | 6+4 =10 |
5 | 5 | 是的 | 10+5 =15 |
6 | 6 | 假 | 循环终止 |
所以,sum 的最终值 将是 15 岁。
C# 做...while 循环
做 和同时 关键字用于创建 do...while 循环。它类似于while循环,但是它们之间有很大的不同。
在 while 循环中,在执行主体之前检查条件。在 do...while 循环中正好相反,即在执行主体后检查条件。
这就是为什么 do...while 循环的主体将至少执行一次,而与测试表达式无关。
do...while 循环的语法是:
do { // body of do while loop } while (test-expression);
...while 循环如何工作?
- 首先执行 do...while 循环的主体。
- 然后是
test-expression
被评估。 - 如果
test-expression
是true
,循环体被执行。 - 当
test-expression
是false
, do...while 循环终止。
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 循环相反)。
- 在身体内部,产品 计算并打印在屏幕上。 i 的值 然后递增到 2。
- 循环体执行后,测试表达式
i <= 10
被评估。总共,do...while 循环将运行 10 次。 - 最后,当i的值 为 11,测试表达式的计算结果为
false
并因此终止循环。
无限 while 和 do...while 循环
如果 while 和 do...while 循环中的测试表达式永远不会计算为 false
,循环体将永远运行。这样的循环称为无限循环。
例如:
无限循环
while (true) { // body of while loop }
无限做...while循环
do { // body of while loop } while (true);
当我们需要一个循环在我们的程序运行时运行时,无限循环很有用。
例如,如果您的程序是一个动画,您将需要不断地运行它直到它停止。在这种情况下,需要一个无限循环来重复运行动画。
C语言