• ベストアンサー

for文の使い方

for(;;)のように何もfor文の中に書かないで使う場合というのはどのような場合ですか? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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--) { } 等のように、複数の初期化・複数の事後処理も出来ます。ほぼこのためだけに、, (コンマ演算子)が存在しているような気も。

pinoko1124
質問者

お礼

#1,#2,#3,#4,#5のみなさんありがとうございます。 理解できました。

その他の回答 (4)

noname#13883
noname#13883
回答No.4

While(1)(無限ループ) と同じ意味になります 初期設定が必要ないとか他の場所で設定済み ループの回数が固定回数ではない STEP UP数が固定ではないとか文の中で指定している のような時に使います

  • cats1234
  • ベストアンサー率28% (103/356)
回答No.3

for(cnt=0;cnt < 5; cnt++) 上記のようなカウンタを使用しないで、ある条件でbreakしたいような処理を行う際に使用します。 for(;;) { if(条件) { 処理(フラグ設定等) break; } }

  • ballville
  • ベストアンサー率47% (233/487)
回答No.2

無限ループの決まり文句のようなものです。抜けるときはbreakで。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

while(1)と同じで、永久ループの意味です。

関連するQ&A

  • 特殊なfor文について

    SJC-P 問題集 問13の疑問より for文について教えてください。 一般的なfor文だと次の形だと思うのですが for(int i = 0; i < 5; i ++){ //5回ループする } Animal [] animals = { new Animal(), new Cow() }; for( Animal a : オブジェクト配列animals ){ a.saySomething(); } のような場合、このfor文は 「オブジェクト配列の中にanimalsがあるまでの間、ループする」という意味を指しているのでしょうか? for( クラス名 オブジェクト名 : オブジェクト配列) の一文にある「:」← の役割は何なのでしょうか?

    • ベストアンサー
    • Java
  • for文について

    for文についてお聞きしたいことがあります。 for文で、10個のmcに動作をつけてるのですが、たとえば、その中のひとつをロールオーバーさせたら、その他の9個のムービークリップに ロールオーバーしてるムービークリップとは違うアクションをつけたいのですが、どうすればいいでしょうか?

  • for文の使い方

    for文の中にif文を入れて使いたいのですが「Nextに対するforがありません」となりエラーが出てしまいます。どうしたらよいのでしょうか? If Option1.Value = True Then For i = 2 To 10  If xlSheet.Cells(i, 2).Value > 10 Then Form2.List1.AddItem xlSheet.Cells(i, 1) Next i End If End If

  • C/C++ for文

    ふと疑問に思ったことなんですが、検索して調べても簡単に出てこなかったので 質問させていただきます。 C / C++ の文法に for 文がありますが基本的な for 文の書き方と言えば以下のようになりますよね。 for (int i = 0; i < 10; i++); この中の式に注目してほしいのですが、i = 0, i < 10; i++ のようにいずれも 1 つの文を書くことはできますよね。2 つの文を書きたい場合でも i++,i++ のようにカンマを使えば、2 つどころか 3 つ以上の文を書くことができます。 ここで、その式の部分に for 文を入れてみたらエラーが返ってきました。普通はこの部分に for 文を入れるなんてことはしないのでよくわからないのですが、なぜエラーが返ってくるのでしょうか。printfのような出力文でもいけるのに、for 文などではダメな理由がよくわかりません。

  • htmlでfor文使えますか?

    htmlでfor文使えますか? 使えるとしたらtextboxをfor文で3つ作り それぞれに異なる変数が入るような ソース教えていただけませんか?

  • for文

    for文なのですが、 scanfで得た、 iを for文のi--で、一づつへらしてますが、 0でfor文がおわりますが 0で終わりの記述がない気がするんですが、 どうしてでしょか? int main(void) {    int i;    printf("正の整数を入力してください。\n");    scanf("%d",&i);    for( ; i ; i--)    printf("qが入力されました。\n");    return 0; }

  • for文

    forを使って九九の表を作るのですが、 フローチャートすら書けないでいます。 そもそものfor文の意味もわかりません。 誰か分かりやすく説明してください。

  • プログラミングのfor文はなぜforなんでしょうか

    プログラミングのfor文はなぜforなんでしょうか? 英語のforに繰り返すという意味がないですよね? continue,loop,とかならわかるんですが、なぜforなんでしょうか?

  • for文について

    以下のプログラムにおいて, for文の末尾にセミコロンがついているタイプ( for(...); ) のfor文の制御の流れは,セミコロンがついていないタイプ( for(...) ) と何が違うのでしょうか? for文の末尾にセミコロンがないタイプのものしか知らないため, セミコロンがつくことで流れに何が変化するか知りたいです. 御存知の方がいらしたら,教えてください. 【出力結果】 forの末尾にセミコロンがある 2100 forの末尾にセミコロンがない 700 /*+++++++ ソース ++++++++*/ #include <stdio.h> int main() {  int s_tb1[3] = {60,100,150};  int mg_tb[3] = {1,3,4};  int i,size=80,base=600,mode=1,ext=100;  for(i=0; size>s_tb1[i]; i++);   printf("%d\n", (base+mode*ext)*mg_tb[i] );  return(0); }

  • この文の for はなんと訳すべきですか

    Every culture has its own attributes, which must be grasped in and for themselves . 上の文ですが、参考書の和訳では 「あらゆる文化が独自の属性を持っており、それ自体として理解されなければならない。」 とありました。 inについては Alcohol is a poison in itself. 「アルコールはそれ自体毒である。」 という文を丸暗記していたので、おそらく今回の文も同じように訳せばよいかと思いついたのですが、参考書の訳では in themselves の訳はありますが for themselves の訳が書かれていません。 この文の for はなんと訳したらよいのでしょうか。

専門家に質問してみよう