無限ループだとしか思えません。
forループの3つの式のいずれかを省略できますか?省略した場合のそれぞれのデフォルトはありますか?
はい、それは無限ループです。
例:
for (; ;) { }
(別名:カニ)
while (true) { }
do { } while (true)
それは確かに無限ループです。
内部的には、コンパイラ/ジッターはこれを(効果的に)単純なJMP操作に最適化します。
また、事実上次と同じです。
while (true)
{
}
(これも最適化されていることを除いて、while式の(真の)部分は通常何らかの比較を必要とするためですが、この場合、比較するものはありません。ループを続けてください!)
はい、それは無限ループです。3つの式のいずれかを省略できますが、私の経験では、通常、最初の式または3つすべての式のいずれかです。
それは無限ループです。事実上、これと同じです:
while (true)
{
}
デフォルトはありません。初期化されるものも、インクリメントされるものも、完了のテストもありません。
最初の部分と3番目の部分にはデフォルトはありません(デフォルトは何もありませんが、機能します)。条件式のデフォルトはtrue
、for(;;)
事実上無限ループになります。(デフォルトがであると想定されていた場合、false
そのような構成を持つことは無意味でした)。
MicrosoftのC#プログラマーリファレンスには次のように書かれています。
forステートメントのすべての式はオプションです。たとえば、次のステートメントを使用して無限ループを記述します。
for (;;) {
...
}
CおよびC++の場合と同様に、3つのうちのいずれか、または3つすべてを省略できます。
それは無限ループです:)。