授業/C言語基礎/while文 のバックアップ(No.5)


for文のおさらい

繰り返しの回数が決まっている繰り返しに用いられるfor文は、次のような形をしていました。

  for (初期化; 繰り返し条件; 更新処理) {
    処理
  }

for文は、次のように実行されるものでした。

  1. 「初期化」を行う
  2. 「繰り返し条件」を評価する
    • 条件を満たしていれば、波括弧 { } の中の「処理」を行い、最後に「更新処理」を行う
    • そうでなければ、for文の次の処理に移る
  3. 2へ戻る

たとえば、1から10までの値を繰り返し出力するプログラムは、次のようになります(プログラム1)。

  int i;
  for (i = 1; i <= 10; i++) {
    printf("%d\n");
  }

繰り返し処理のフローチャート

1から10までの値を繰り返し出力するプログラムを、フローチャートで描くと、次のようになります。

while1.png

これをC言語風にすると、次のようになります。

while2.png

if文のところで勉強したように、大小関係を比較する関係演算の結果はint型の値であり、結果が0のときは条件を満たさない、0以外のときは条件を満たすと判定されます。

while文

while文は、次の形をしています。

  while (繰り返し条件) {
    処理
  }

while文は、次のように実行されます。

  1. 「繰り返し条件」を評価する
    • 条件を満たしていれば、波括弧 { } の中の「処理」を行う
    • そうでなければ、while文の次の処理に移る
  2. 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++;
  }
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS