- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 授業/C言語基礎/while文 へ行く。
for文のおさらい †
繰り返しの回数が決まっている繰り返しに用いられるfor文は、次のような形をしていました。
for (初期化; 繰り返し条件; 更新処理) { 処理 }
for文は、次のように実行されるものでした。
- 「初期化」を行う
- 「繰り返し条件」を評価する
- 条件を満たしていれば、波括弧 { } の中の「処理」を行い、最後に「更新処理」を行う
- そうでなければ、for文の次の処理に移る
- 2へ戻る
たとえば、1から10までの値を繰り返し出力するプログラムは、次のようになります(プログラム1)。
int i; for (i = 1; i <= 10; i++) { printf("%d\n"); }
繰り返し処理のフローチャート †
1から10までの値を繰り返し出力するプログラムを、フローチャートで描くと、次のようになります。
これをC言語風にすると、次のようになります。
if文のところで勉強したように、大小関係を比較する関係演算の結果はint型の値であり、結果が0のときは条件を満たさない、0以外のときは条件を満たすと判定されます。
while文 †
while文は、次の形をしています。
while (繰り返し条件) { 処理 }
while文は、次のように実行されます。
- 「繰り返し条件」を評価する
- 条件を満たしていれば、波括弧 { } の中の「処理」を行う
- そうでなければ、while文の次の処理に移る
- 1へ戻る
while文を使って、1から10までの値を繰り返し出力するプログラムを作ると、次のようになります(プログラム2)。
int i = 1; while (i <= 10) { printf("%d\n", i); i++; }
このプログラムを、上のプログラム1と比べてみましょう。 繰り返し条件は同じで、カウント変数の初期化はwhile文の前に、更新処理はwhile文の波括弧 { } の中の最後にあることがわかります。
つまり、for文をwhile文に直すと、次のようになります。
初期化; while (繰り返し条件) { 処理 更新処理; }
演習1 †
プログラム1とプログラム2を作成し、実行結果を確認せよ。
繰り返し条件の後置判定 †
int i = 1, sum = 0; while (sum <= 100) { sum += i; printf("%d: %d\n", i, sum); i++; }
luna% a.out 1: 1 2: 3 3: 6 4: 10 5: 15 6: 21 7: 28 8: 36 9: 45 10: 55 11: 66 12: 78 13: 91 14: 105
回数が決まっていない繰り返し †
break文 †
continue文 †
continue文は、繰り返し処理の残りの部分を飛ばします。 多くの場合、continue文はif文と組み合わせて使います。
int i = 1; while (i <= 10) { if (i == 5) { break; }; printf("%d\n", i); i++; }