C#While Loop vs For Loop?

at5*_*541 6 c# console loops for-loop while-loop

在C#中,一段时间以来一直困扰着我,问题是什么是While和For循环之间的实际主要区别.它只是纯粹的可读性,即; 你可以在for循环中完成的所有事情都可以在while循环中完成,只需在不同的地方完成.所以请看这些例子:

int num = 3;
while (num < 10)
{
    Console.WriteLine(num);
    num++;
} 
Run Code Online (Sandbox Code Playgroud)

VS

for (int x = 3; x < 10; x++)
{
    Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)

两个代码循环产生相同的结果,并且两者之间的唯一区别是for循环强制您声明一个新变量并且还在开始时设置每个循环周期的迭代值?也许我在任何重大差异方面都缺少其他东西,但如果有人可以直截了当地说明这一点,那就太好了.谢谢.

Hen*_*man 9

两者之间的唯一区别是for循环强制你声明一个新变量,并在开始时每个循环周期设置迭代值?

for循环强迫你什么都不做.您可以省略3个元素中的任何一个.最小的形式是

for(;;)  // forever
{
  DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

但是你可以使用3个元素来编写更简洁的代码:

for(initializer; loop-condition; update-expression)
{
  controlled-statements;
}
Run Code Online (Sandbox Code Playgroud)

相当于:

{
    initializer; 
    while(loop-condition)
    {
       controlled-statements;

    continue_target:  // goto here to emulate continue
       update-expression;
    }
}
Run Code Online (Sandbox Code Playgroud)

注意外{}括号中for(int i = 0; ...; ...)i本地的for循环.明显的好处.

但是使用的主要区别在于你continue;在循环内部调用时,在循环中比在for循环中更容易得到逻辑错误.


小智 4

是的,它们在后台(即在程序集中)完全相同。

for通常,当重复次数已知并且我们不打算更改计数器(索引)时,更常见的是使用循环。

while循环还具有哨兵循环的优点,例如,当从用户处获取输入直到给出特定内容时,它会更容易。