这个循环如何在c#中工作

时间:2010-05-14 01:04:03

标签: c# .net

最近,在一本书中我读了这段代码。您能否定义此代码的方式以及此代码的工作方式。

int i = 0; 
for (; i != 10; ) 
{ 
    Console.WriteLine(i); 
    i++; 
}

8 个答案:

答案 0 :(得分:13)

它循环。

由于您已经在上面设置了i=0,因此他们省略了for循环的那一部分。此外,由于您在最后增加变量,因此也省略了它。

他们基本上只是将for循环变成了while循环。

它可能会更优雅:

int i = 0; 
while( i != 10 ) 
{ 
    Console.WriteLine(i); 
    i++; 
}

答案 1 :(得分:2)

for语句在C#规范中定义为

  

for( for-initializer ; for-condition ; for-iterator embedded-statement

所有三个 for-initializer for-condition for-iterator 都是可选的。代码有效,因为这些代码不是必需的。

对于好奇:如果省略 for-condition ,则循环的行为就好像有一个 for-condition 产生了true。因此,它将充当无限循环,需要跳转语句( break goto throw return )。

答案 2 :(得分:1)

如果以正常形式更容易看到,那么几乎相当于:

for (int i = 0; i != 10; i++) 
{ 
    Console.WriteLine(i); 
}

除了在循环完成后它为用户留下i之外,它不仅限于for循环。

答案 3 :(得分:1)

与此循环相同:

for (int i = 0; i != 10; i++) {
  Console.WriteLine(i); 
}

除了变量i在循环外声明,因此它的范围更大。

for循环中,第一个参数是初始化,第二个参数是条件,第三个参数是增量(实际上可以是几乎任何东西)。本书展示了如何将初始化和增量移动到代码中实际执行的位置。循环也可以显示为等效的while循环:

int i = 0;
while (i != 10) {
  Console.WriteLine(i);
  i++;
}

此处变量i也在循环外声明,因此范围更大。

答案 4 :(得分:1)

您正在使用“for”,就像“while”

一样

答案 5 :(得分:1)

此代码可以重写,(在您的代码段的上下文中 - 它与说明的不同)。:

for (int i = 0; i != 10; i++)
    Console.WriteLine(i);

基本上,初始化表达式和增量表达式已从for循环表达式中取出,这是完全可选的。

答案 6 :(得分:0)

与:

相同
for (int i = 0; i != 10; i++) {
    Console.WriteLine(i);
}

请不要写那样的代码。 它只是丑陋而且违背了for-loops的目的。

答案 7 :(得分:0)

由于int i被声明在顶部所以它不在for循环中。 这很像

for(int i = 0; i!=10; i++)
{
   /// do your code
}