for(;;)というのは、どういう時に使うんですか?
そしてどんな働きをするものなんでしょうか?

A 回答 (5件)

皆さんの言うように「無限ループ」です。


自分が意識したタイミングでのみ処理を終了させたい場合に利用します。

基本的には、

for(;;) {
 if(method1()) {
  break;
}
}

のように記述し、method1という関数がtrueを返したときだけ、
ループを終了するといった行為で使用します。

GUIを扱うソフトウェアでは一般的に使われます。
# ユーザが終了ボタンを押したときに、プログラムを終了するなど

こうしておかないと、ソフトウェアを立ち上げて、一定時間したら
勝手にプログラムが終了してしまったりするので。。。


ちなみに、for(;;)とwhile(true)のどちらを使うかはその人のコーディングスタイルだと思います。動作的には全く同じです。。。

通常のループでも、for文とwhile文のどちらでも作れますから、その延長として無限ループを使うときに書き慣れた方を使うことが多いようです。
    • good
    • 0
この回答へのお礼

お礼が遅くなり、
しかもみなさんそれぞれにお礼を言えなくてすいません。

みなさんすごくわかりやすかったです。
ありがとうございました。

お礼日時:2001/09/05 18:27

「無限ループ」と言うやつですね。



while(true) {
}

と言うのも同じ動作をします。
普通はwhile(true)を使うと思っているんですが・・・
for(;;)にメリットがあるかどうかは分かりません。

無限ループは処理の終了がいつになるか分からない処理を
永遠と行うために使ったりします。
(たとえば何かのファイルを監視して、そのファイルが更新されるまで
次の処理を行わないようにする・・・など)

ただし、無限ループの構文の中で外に抜け出す部分を作成しないと、
いつまでたっても終わらなくなってしまいます。
「break」をお忘れなきよう。
    • good
    • 0

ループから抜け出したくない場合に使います。



たとえば定期的にエンドレスで何かをチェックしたい
ような場合に使うことがあります。
# 実際にはプログラムになれた人は別な記述を
# しますが、、、

while(1);
と書いても同様です。
    • good
    • 0

無限ループを表すものですね。



普通for文の中にはループのための条件が入るのですが、
「;」を2つだけで中のループ条件を省略(というかループ条件なし)にしています。
条件がないということはfor文を終了するための条件がないことと同じなので、
延々とループを回りつづけることになるのです。

無限ループなので当然中でなんらかの形でループを抜けるための命令を入れないと、
いつまでたってもプログラムは終了しません(笑)

Javaは経験ないですが意味はこれであっているはずです(笑)
    • good
    • 0

こんにちは。



Cや、C++でも、同じなのですが、
FOR分を用いた 永久ループです。

どこかに抜け道、作らないと大変な事になります。
~~終わんない~~~


でわでわ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ