【C言語入門】for文、while文編
0. プログラムの流れの繰り返し
プログラミングは1回の流れで終了せずに、何度も同じ流れを繰り返させる事ができる。これを用いる事で作業を大幅に自動化させる事ができる。例えば、
#include <stdio.h> int main(void) { int i=1, j=1; for (i=1; i<10; i++) { for (j=1; j<10; j++) { print("%d¥n", i*j); } } return 0; }
で、九九の表を書く事ができる。
1. while文
while文は次の形式で書かれる。
while (式) 文;
(式)をループ本体と言い、この式が非ゼロである限り文が何度も実行される。 例:
#include <stdio.h> int main(void) { int i = 1; while (i<=10) { printf("%d¥n", i); i++ } return 0; }
i++は、i=i+1と大体同じ意味で、iが10になるまで、iを一つづつ増やしながら表示する。
2. do文
do文も繰り返しに用いる形式である。次の形式で書かれる。
do 文 while (式);
()内の式(制御式)を評価した値が非ゼロである限り、文を繰り返し実行する。
- do文とwhile文の違い
do文とwhile文はほぼ同じ内容だが、微妙に異なる点がある。それは後判定か前判定かである。
do文は、文を実行してから、式の判定を行う。すなわち少なくとも一回は文が実行される。これに対して、while文は先に式を判定してから、文が実行される。この場合一度も文が実行されない場合がある。
3. for文
for文は、よく次の形式で紹介される事が多い。
for (i=1; i<=10; i++);
この形式で覚えると、応用が効かない、と私は思う。次の形式で理解するべきである。
for (式1; 式2; 式3) 文;
式1 : "前処理"として評価・実行。ただし実行は1度のみ。
式2 : "継続条件"である制御式。これが非ゼロであれば文を実行。(省略すると無限ループ)
式3 : "次の繰り返しの準備"を実行。
for (i=1; i<=10; i++);
の例で説明すると、
式1(i=1) : まず最初だけiを1で初期化。
式2(i<=10) : iが10以下かどうか判定。これが非ゼロであれば後の文を実行。
式3(i++) : 文を実行した後、次のループの準備のため、iの値を一つ上げる。
このようなアルゴリズム的な理解で、少し形式が変わった場合でも対応できる。
do文、while文、for文などのプログラムの流れを繰り返す文を、繰り返し文と呼ぶ。