- ベストアンサー
for文の使い方
for(;;)のように何もfor文の中に書かないで使う場合というのはどのような場合ですか? 教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
蛇足ですが、for(初期化; 繰り返し条件; 事後処理); の部分は、いずれも省略可能です。 このため、for は、「一定回数繰り返す」というよりは、初期化と事後処理つきの while と理解した方が良いようです。 1.初期化を省略する例 for(i = 0; (i < 10) && (data[i] != '*'); i++) { 処理 } for(; i < 10; i++) {他の処理} data に含まれる '*' 前後で処理が変わる例 2.事後処理を省略する例 for(i = 0; i < 10;) { if (...) i++; } 事後処理が一定でない場合に無理に「事後処理」を書くと、流れが変になります。 3.繰り返し条件を省略する例 for(i = 0;; i++) { .... if (...) break; ... } ループの離脱条件が、処理の途中で判明する場合で、その場合、それ以下の処理をしてはならない場合。 などなど。 また、 for(i = 0, j = 10; data[i] != 0; i++, j--) { } 等のように、複数の初期化・複数の事後処理も出来ます。ほぼこのためだけに、, (コンマ演算子)が存在しているような気も。
その他の回答 (4)
While(1)(無限ループ) と同じ意味になります 初期設定が必要ないとか他の場所で設定済み ループの回数が固定回数ではない STEP UP数が固定ではないとか文の中で指定している のような時に使います
- cats1234
- ベストアンサー率28% (103/356)
for(cnt=0;cnt < 5; cnt++) 上記のようなカウンタを使用しないで、ある条件でbreakしたいような処理を行う際に使用します。 for(;;) { if(条件) { 処理(フラグ設定等) break; } }
- ballville
- ベストアンサー率47% (233/487)
無限ループの決まり文句のようなものです。抜けるときはbreakで。
- jacta
- ベストアンサー率26% (845/3158)
while(1)と同じで、永久ループの意味です。
お礼
#1,#2,#3,#4,#5のみなさんありがとうございます。 理解できました。