📜  C#while和do … while循环

📅  最后修改于: 2020-10-06 09:26:20             🧑  作者: Mango

在本文中,我们将学习C#中的while和do … while循环,如何使用它们以及它们之间的区别。

在编程中,通常希望执行某些语句块指定次数。一种可能的解决方案是键入所需次数的语句。但是,重复的次数可能事先未知(在编译时),或者可能不够大(例如10000)。

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

在本文中,我们将学习在C#中使用while循环。


C#while循环

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

while (test-expression)
{
    // body of while
}

while循环如何工作?

  1. C#while循环包含一个test-expression
  2. 如果test-expression计算为true
    1. while循环内的语句将被执行。
    2. 执行后,将再次评估test-expression
  3. 如果将test-expression评估为false ,则while循环终止。

while循环流程图

C# while loop

示例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 <= 5true ,因此它执行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+ii的值增加1。
  • i的值达到6时,测试表达式i<=5将返回false,并且循环终止。

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

最初, i = 1, 总和 = 0

While loop execution steps
Iteration Value of i i<=5 Value of sum
1 1 true 0+1 = 1
2 2 true 1+2 = 3
3 3 true 3+3 = 6
4 4 true 6+4 = 10
5 5 true 10+5 = 15
6 6 false Loop terminates

因此, 总和的最终值为15。


C#做… while循环

dowhile关键字用于创建do … while循环。它类似于while循环,但是它们之间有很大的不同。

在while循环中,在执行主体之前检查条件。与do … while循环完全相反,即在执行主体后检查条件。

这就是为什么do … while循环的主体将至少执行一次,而与test-expression无关。

do … while循环的语法为:

do
{
    // body of do while loop
} while (test-expression);

… while循环如何工作?

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

做… while循环流程图

Do while loop in c#

示例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时,test-expression的计算结果为false ,因此终止了循环。

无限while和do … while循环

如果while和do … while循环中的测试表达式永远不会得出false ,则循环主体将永远运行。这样的循环称为无限循环。

例如:

无限while循环

while (true)
{
    // body of while loop
}

无限做…循环

do
{
    // body of while loop
} while (true);

只要我们需要程序运行,无限循环就很有用。

例如,如果您的程序是动画,则需要不断运行它,直到停止为止。在这种情况下,无限循环是必要的,以保持重复运行动画。