for (int frame <= 10; frame++)
{
}
例如,我有這個代碼,但它不工作。但是,當我輸入一個分號時,它就會起作用。爲什麼是這樣?爲什麼我在C#中的for循環在條件中需要分號?
for (; frame <= 10; frame++)
{
}
for (int frame <= 10; frame++)
{
}
例如,我有這個代碼,但它不工作。但是,當我輸入一個分號時,它就會起作用。爲什麼是這樣?爲什麼我在C#中的for循環在條件中需要分號?
for (; frame <= 10; frame++)
{
}
這就是for
的工作原理。它有三個部分
從msdn文檔:
for (initializer; condition; iterator)
body
基本上,通過把一個額外的分號,你給它一個空的初始化部分。
因爲for循環的第一部分是聲明/初始化,所以它是可選的。把;只是轉向下一部分,即條件。
如果它是可選的,我還能夠將其作爲初始值設定項嗎? – user3158491
您可以在該行之前聲明該變量。 –
,因爲它是語言語法http://msdn.microsoft.com/en-us/library/ch45axte.aspx
for (initializer; condition; iterator)
body
C#語法決定了for
語句具有:
1)一種初始
2)的條件
3)一種迭代器
您不必在這些部分中添加任何內容,但爲了編譯器的原因,它們仍然需要在那裏。
見http://msdn.microsoft.com/en-us/library/ch45axte.aspx
編輯: 順便說一句,你可以使用一個while
循環,而不是:
while (frame++ <= 10)
{
...
}
我覺得你的for循環(第2例)的作品,因爲你已經初始化變量框架 您的for循環開始之前。
例如:
int frame = 0;
for(; frame <= 10; frame++)
{
}
你不只是加分號;你也刪除了'int',它修復了一個不同的語法錯誤。 – Blorgbeard
順便說一句,你應該選擇下面的答案。 – canhazbits