本文へスキップ
BecomeCoder

C言語コース · 第3章 制御構文 · レッスン11

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

ブラウザで完結

導入

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

説明

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

flowchart TB
  init["int i = 0(初期化・最初だけ)"] --> cond{"i < 5 ?"}
  cond -->|"真"| body["本体:printf(\"%d \", i)"]
  body --> upd["i++(更新)"]
  upd --> cond
  cond -->|"偽"| done["ループ終了"]
#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("%d ", i);     // 0 1 2 3 4
    }
    printf("\n");
    return 0;
}

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

#include <stdio.h>

int main() {
    int total = 0;
    for (int i = 1; i <= 10; i++) {
        total += i;
    }
    printf("1から10の合計は %d\n", total);   // 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を書いて「実行」を押すと、ブラウザ内のインタプリタで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(scanf を使う回は「標準入力」欄に値を入れてから実行します)。

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

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