本文へスキップ
BecomeCoder

C++コース · 第3章 制御構文 · レッスン12

for文 ― 決まった回数くり返す

ブラウザで完結

導入

決まった回数のくり返しには for 文を使います。C++ の for は「初期化・条件・更新」を1行にまとめた形です。

説明

for (初期化; 条件; 更新) と書きます。条件が true のあいだ、中の処理をくり返します。「初期化 → 条件チェック →(真なら)本体 → 更新 → また条件チェック…」とぐるぐる回ります。

flowchart TB
  init["int i = 0(初期化・最初だけ)"] --> cond{"i < 5 ?"}
  cond -->|"true"| body["本体:cout << i"]
  body --> upd["i++(更新)"]
  upd --> cond
  cond -->|"false"| done["ループ終了"]
#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 5; i++) {
        cout << i << " ";     // 0 1 2 3 4
    }
    cout << endl;
    return 0;
}

3つの部分はそれぞれ、int i = 0(開始)、i < 5(続ける条件)、i++(毎回の更新)です。合計を求める定番の形も見ましょう。

#include <iostream>
using namespace std;

int main() {
    int total = 0;
    for (int i = 1; i <= 10; i++) {
        total += i;
    }
    cout << "1から10の合計は " << total << endl;   // 55
    return 0;
}

やってみよう

i < 5 の数や i++i += 2 に変えて、くり返し方が変わることを確かめましょう。

演習

for を使って、1 から 5 までの数の**積(階乗)**を求めて表示してください(1*2*3*4*5 = 120)。

ヒント1を見る

int product = 1; から始め、for (int i = 1; i <= 5; i++) product *= i;

実際に動かしてみよう

下のエディタにC++を書いて「実行」を押すと、ブラウザ内のインタプリタで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(cin を使う回は「標準入力」欄に値を入れてから実行します)。

C/C++ — ブラウザ内で実行

ブラウザ内でC/C++を動かす学習用インタプリタ(JSCPP)を読み込みます(入門向けのサブセットです)。
スクロールして表示された時点でも自動で読み込まれます。