【C言語】
for文とwhile文の使い分け
(1行vs4行)

while(4行) ループ処理 for(1行)

■whileで記述すると4行も必要

void W(void){
    int i;//(1)変数宣言

//この間が実務では結構離れていたりする
   
    i = 0 ;//(2)初期化式
    while(i < 10){//(3)ループ条件式
        printf("W:%d\n",i);
        i++;//(4)更新式
    }
}

while文は
(1)変数宣言、
(2)初期化式、
(3)ループ条件、
(4)更新式
4行も必要です。


■for文なら1行で書けるので楽

void F(void){
    for(int i=0;i < 10;i++){
        printf("F:%d\n",i);
    }
}

変数宣言、初期化式、ループ条件、更新式が
書けます。

C99仕様ではループカウンタ変数をfor文ブロック内で宣言する事で変数の可視範囲を局所化する事が出来ます(=要するに、見る範囲が限定されるので変数をあちこち見なくて済みます)


■for文の第1式と第3式に書く事が無い時

void F2(void){
    char line[1024];
    for(;fgets(line,1024,stdin)!= NULL;){
      printf("F:%s",line);
    }   
}

for文の第一式と第三式に書く事がなければwhileが自然です。


■while文が自然な例

void W2(void){
    char line[1024];
    while(fgets(line,1024,stdin)!= NULL){
      printf("W:%s",line);
    }   
}

「標準入力から読めるあいだ回れ」と自然に読めませんか?


■まとめ

whileにするかforにするかは好みの問題である」と
聖典プログラミング言語Cに書いています。
迷ったら、とにかくfor文で書いてみましょう。
for文第1式と第3式に書く事がなければ
while文が自然です。

アンケート

4
10回転する時の貴方の好きなスタイルは