プログラミング

C言語超入門④ while文とfor文で繰り返そう

while、for、do-while、break、continueを使い、同じ処理を安全に繰り返す方法を学びます。

第4回では、同じ処理を何度も実行する繰り返しを学びます。

この回でできるようになること

  • while文で条件が正しい間だけ繰り返す
  • for文で回数を決めて繰り返す
  • do-while文を使う
  • breakとcontinueで流れを変える

while文

int number = 1;

while (number <= 5) {
    printf("%d\n", number);
    number++;
}

number++は、numberを1増やす書き方です。これを忘れると条件がずっと正しいままになり、処理が終わらない無限ループになります。

for文

回数が決まっている繰り返しには、for文が便利です。

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

for文のかっこには、次の3つをセミコロンで区切って書きます。

最初の値; 続ける条件; 1回ごとの更新

合計を求める

int total = 0;

for (int i = 1; i <= 10; i++) {
    total = total + i;
}

printf("合計は%dです\n", total);

繰り返す前にtotalを0で初期化しておくことが大切です。

do-while文

条件にかかわらず、最初の1回は必ず実行したい場合に使います。

int number;

do {
    printf("1から10の数字を入力: ");
    scanf("%d", &number);
} while (number < 1 || number > 10);

最後のセミコロンを忘れないようにしましょう。

breakとcontinue

breakは繰り返しを途中で終了し、continueはその回の残りを飛ばして次へ進みます。

for (int i = 1; i <= 10; i++) {
    if (i == 8) {
        break;
    }
    if (i % 2 == 0) {
        continue;
    }
    printf("%d\n", i);
}

この例では、8になる前までの奇数だけが表示されます。

練習してみよう

1から100までのうち、3の倍数だけを表示してみましょう。

模範解答

#include <stdio.h>

int main(void) {
    for (int number = 1; number <= 100; number++) {
        if (number % 3 == 0) {
            printf("%d\n", number);
        }
    }
    return 0;
}

解説

number % 3はnumberを3で割った余りです。余りが0なら3で割り切れるため、その値だけを表示します。for文が1から100までのすべての整数を順番に調べます。

この回のまとめ

  • 条件をもとに繰り返すならwhile文
  • 回数が決まっているならfor文
  • 最初の1回を必ず実行するならdo-while文
  • 無限ループを防ぐため、条件が変化する処理を確認する

前の回 / 次の回:関数

← 記事一覧へ戻る