为什么我在C#中的for循环需要一个分号?

时间:2014-01-15 02:15:24

标签: c# for-loop

for (int frame <= 10; frame++)
{
}

例如,我有这段代码,但它无效。当我放入半结肠时,它可以工作。这是为什么?

for (; frame <= 10; frame++)
{
}

5 个答案:

答案 0 :(得分:4)

C#语法规定for语句具有:

1)初始化程序

2)条件

3)迭代器

您不必在这些部分中添加任何内容,但为了编译器,它们仍然需要存在。

请参阅http://msdn.microsoft.com/en-us/library/ch45axte.aspx

编辑: 另外,您可以改为使用while循环:

while (frame++ <= 10)
{
  ...
}

答案 1 :(得分:2)

我认为你的for循环(第二个例子)有效,因为你已经初始化了变量 frame 在你的for循环开始之前。

例如:

int frame = 0;
for(; frame <= 10; frame++)
{

}

答案 2 :(得分:1)

这就是for的工作原理。它有三个部分

来自msdn文档:

for (initializer; condition; iterator)
    body

基本上,通过添加一个额外的分号,你给它一个空的初始化部分。

答案 3 :(得分:1)

因为它是语言语法http://msdn.microsoft.com/en-us/library/ch45axte.aspx

for (initializer; condition; iterator)
    body

答案 4 :(得分:0)

因为for循环的第一部分是声明/初始化,所以它是可选的。投入;只是移动到下一部分,条件。