:C#アプリケーションで "for(;;)"を使用していますか?私が使用するアプリケーションのためのいくつかのサンプルソースコードを探していたと私は、このラインに出くわした
for (;;)
{
// The rest of the application's code
}
これは無限ループを作成することであるように見えますが、私は "に慣れていませんよ;; "残念ながらGoogleにとって非常に難しいです。
:C#アプリケーションで "for(;;)"を使用していますか?私が使用するアプリケーションのためのいくつかのサンプルソースコードを探していたと私は、このラインに出くわした
for (;;)
{
// The rest of the application's code
}
これは無限ループを作成することであるように見えますが、私は "に慣れていませんよ;; "残念ながらGoogleにとって非常に難しいです。
はい、無限ループです。条件式のない普通のforループです。
for文の表現は、すべてオプションです。たとえば、次の文は、無限ループを記述するために使用されます。
for (; ;) { // ... }
ありがとう、それは一般的な練習ですか?(IE:ハックではありません) – JuniorDeveloper1208
注意すべき点の1つは、終了しないループが通常悪い状態になるためには、それを中断する条件があることです。 @toleeroそれはスタイルの問題です。代わりに 'while(true){}'ループを使うのが好きですが、それはIMOの方が直感的ですが、いずれかが標準的な方法です。 –
@ t84 - かなり一般的ですが、多くの人が可読性のために 'while(true){}'を使います。 – Oded
それは無限ループです。
この記事で興味深い読書while (true) {
}
に等しい
:この種のコードを行うには、いくつかの 仕事を待っているワーカースレッドでかなり を発生
http://csharpdevelop.blogspot.com/2004/05/writing-infinite-loop.html
。一般的なコード パターンです。ループの ステートメント本文のすべてのコードは重要です。 「終了 条件」は頻繁にチェックする必要があります。 これは、行う作業が短くなければならないことを意味します。 通常、これは達成するために与えられた 作業のより大きなセットのうち、より小さな1つの小さなチャックです。
これはfor (<initial>; <condition>; <increment>)
と同じです。これは、単に初期値、条件、増分を除外しているだけです。この場合、条件は常に真とみなされます。
そのグーグルの最初のエントリあなたが興味を持っている場合、私はのために のC#をググ;; このリンクを取得しましたhttp://msdn.microsoft.com/en-us/library/ch45axte.aspx C#とmsdnの状態をクリックします。
forステートメントのすべての式はオプションです。 (;) {// ...}
はい、それは無限ループだため
:例えば、次のステートメントは、無限ループを記述するために使用されます。
for (;true;)
か:for
文の
すべてのパラメータは、それは同じですので、true
への条件のデフォルトオプションであり、そして
while (true)
ループあり、これらの要素のための通常の
for (for-initializer ; for-condition ; for-iterator) embedded-statement
たとえば
for(int i = 0 ; i < 10 ; i++) {
foo();
}
これらの要素のどれを省略することができ、あなたは無限ループである、for(;;)
が残っています。以下のための条件文の から省略されている場合
C#言語specificationが、具体的
を述べ、 明確な割り当てが進むの、評価のための条件上記で真 に置き換えた かのように拡張。
だから、for(;;)
は、私はちょうど明確にしたいfor(;true;)
と同じです:
;;
は特別な作業か何かではない - それはループの正規のです。
ループの通常はそのようになっています。あなたはすべての3つの部分を残す場合
for (do_before_loop**;** finish_loop_when_this_condition_is_false**;** do_after_each_iteration);
あなたが;;
を取得する空 - あなたは終了条件を持っていないので、 - これは無限ループです。
通常、あなたがこのようにあなたのループを書く:あなたはあなたのループは無限の1になりたい場合は、あなただけの「I = 0をint型」、状態「I < 10」を削除する必要があり、今
for (int i = 0; i < 10; i++)
{
// The rest of the application's code
}
、インクリメント "i ++"これを行うと、forステートメントでは ";;"だけが表示されます。
for (;;)
{
// The rest of the application's code
}
技術的には、ループを無限にするには、削除する必要があるのは条件(i <10)だけです。 –
無限ループの通常の使用です。 ループ内でコードを何回実行する必要があるかわからない場合は、このループを使用します。したがって、このループから抜けるための条件も定義する必要があります。あなたは、変数TotalReceivedDataに保存されているあなたの完全な受信したメッセージを使用することができます
for (;;)
{
//Receive the maximum allowed size of the message
//Save(Concatenate) the received data in a variable (TotalReceivedData)
// If the length of the received part of the message is equal to zero , break the operation
//<Break the loop>if(message.length == 0){break;}</Break the loop>
}
そしてここに:ここ は、サーバからの長いメッセージを受信する例です。
私はこのようなケースに遭遇したので、この例を追加しました。
[すべての式が見つからない場合のC#forループの機能例えばfor(;;){}](http://stackoverflow.com/questions/697307/what-does-ac-for-loop-do-when-all-the-expressions-are-missing-eg-for) – paxdiablo