プログラミング

C++超入門④ while文とfor文で処理を繰り返そう

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

第4回では、同じ処理を繰り返す方法を学びます。

1から100まで順番に表示したり、正しい値が入力されるまで質問したりするときに使います。

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

  • while文で条件が成り立つ間、処理を繰り返す
  • for文で回数を決めて繰り返す
  • 無限ループを防ぐ
  • breakとcontinueで流れを調整する

while文の基本

while文は、条件がtrueである間、波かっこの中を繰り返します。

int count = 1;

while (count <= 5) {
    std::cout << count << '\n';
    count = count + 1;
}

このコードは1から5まで表示します。

  1. countが5以下か確認する
  2. countを表示する
  3. countを1増やす
  4. もう一度条件を確認する

この流れが、条件がfalseになるまで続きます。

無限ループに注意する

次のコードではcountが増えないため、条件がいつまでもtrueのままです。

int count = 1;

while (count <= 5) {
    std::cout << count << '\n';
}

このように終わらない繰り返しを無限ループと呼びます。

while文を書くときは、「どの処理で条件がfalseになるか」を確認しましょう。

for文の基本

繰り返す回数が分かっている場合は、for文が読みやすくなります。

for (int i = 1; i <= 5; i++) {
    std::cout << i << '\n';
}
部分 役割
int i = 1 最初に1を入れる
i <= 5 5以下の間は続ける
i++ 1回ごとにiを1増やす

**i++**は、i = i + 1を短く書いたものです。

while文とfor文の使い分け

使いたい場面 向いている文
5回繰り返す for文
配列の要素を順番に見る for文
正しい入力が来るまで続ける while文
終了条件はあるが回数が分からない while文

絶対的な決まりではありません。読んだときに目的が分かりやすい方を選びます。

do-while文

最初の1回は必ず実行し、その後で続けるか判断したいときはdo-while文を使えます。

int number = 0;

do {
    std::cout << "1以上の数字を入力してください: ";
    std::cin >> number;
} while (number < 1);

条件を最後に確認する点がwhile文との違いです。

breakとcontinue

breakは繰り返しを途中で終了します。

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break;
    }
    std::cout << i << '\n';
}

continueは、その回の残りを飛ばして次の回へ進みます。

for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue;
    }
    std::cout << i << '\n';
}

このコードでは3だけ表示されません。

小さな練習

for文を使い、1から100までの合計を求めてください。

最初にint型の変数totalを0で用意し、繰り返すたびにiを足します。

模範解答

#include <iostream>

int main() {
    int total = 0;

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

    std::cout << total << '\n';
    return 0;
}

解説

iを1から始め、100以下の間繰り返しています。total += iで現在の合計へiを足します。最終的な結果は5050です。

まとめ

  • while文は、条件がtrueである間繰り返します。
  • for文は、回数が分かっている処理に向いています。
  • 繰り返しの条件が変化することを確認し、無限ループを防ぎます。

前の記事:C++超入門③ if文で条件によって処理を変えよう

次の記事:C++超入門⑤ 関数で処理を分けよう

← 記事一覧へ戻る