請幫我理解爲什麼下面的語句會產生編譯錯誤: 在while語句裏面定義變量是錯誤的嗎?while循環中的C#語法 - 是否允許使用變量定義?
while((string _l = _sr.ReadLine()) != null){
_sb.AppendLine(_l);
}
//無效的表達術語 '串'
請幫我理解爲什麼下面的語句會產生編譯錯誤: 在while語句裏面定義變量是錯誤的嗎?while循環中的C#語法 - 是否允許使用變量定義?
while((string _l = _sr.ReadLine()) != null){
_sb.AppendLine(_l);
}
//無效的表達術語 '串'
是的,你需要聲明它的外循環:
string _l;
while((_l = _sr.ReadLine()) != null){
_sb.AppendLine(_l);
}
該規範定義了一個while
語句:
8.8.1 The while statement
while-statement:
while( boolean-expression ) embedded-statement
因爲變量聲明不是布爾表達式,所以你不能把它們放在t他條件一段時間循環。
發現similiar自問自答:
「由於while循環需要一個條件,這是什麼會做的是在每次循環一次申報行的新實例,因爲條件是通過計算每一次循環。」
In a `while` loop, why can't I declare variable in the condition as in a `for` loop?
我想試圖解釋爲什麼在這裏評論,但意識到一些事情。 'for'和'foreach'可以做到。很容易就可以說「它只是這樣設計的」,但現在我真的很想知道爲什麼。 – Magus
我想知道爲什麼呢!!!!! – Jaeh
@Magus - 規範分別定義了'while'和'for foreach'循環的形式。 'for'循環有一個可以包含變量聲明的顯式初始化程序。 'foreach'循環還可以聲明一個循環記分標識符。 ''while循環條件必須只是一個'布爾表達式'。 – Lee