最近,在一本书中我读了这段代码。您能否定义此代码的方式以及此代码的工作方式。
int i = 0;
for (; i != 10; )
{
Console.WriteLine(i);
i++;
}
答案 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
}