コース一覧
    C言語基礎 制御フロー編
    for文

    C言語基礎 制御フロー編

    C言語の条件分岐と繰り返しを学び、処理の流れを組み立てるコースです。

    1
    条件分岐
    01. if文15分
    02. else ifで多分岐15分
    03. switch文15分
    04. 三項演算子15分
    05. 定番 FizzBuzz判定15分
    06. 条件の組み合わせ15分
    07. つくる 合否とランク判定15分
    08. 第3章クイズ10分
    2
    繰り返し
    01. for文15分
    02. while15分
    03. do-while15分
    04. breakとcontinue15分
    05. 二重ループ(九九)15分
    06. FizzBuzzループ版15分
    07. つくる N人分の入力15分
    08. 第4章クイズ10分

    for文

    5回書くのをやめる

    第3章までで、条件によって処理を変えられるようになりました。ここからは 繰り返し です。まずは回数がはっきり決まっているときに使う for 文から始めます。

    学生番号を 1 から 5 まで並べたいとき、printf を 5 行書けば確かに動きます。しかし人数が 40 人になった瞬間に破綻しますし、表示の形を直したくなったら 40 か所を直すことになります。回数が決まっている繰り返しは for に任せます。

    c

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

    丸カッコの中は3つに分かれている

    for の丸カッコの中は、セミコロンで区切られた 3 つの部分でできています。

    • 最初の int i = 1 は 初期化。ループに入る直前に 1 回だけ実行されます
    • 真ん中の i <= 5 は 継続条件。毎回この式を確かめて、真のあいだだけ中身を実行します
    • 最後の i++ は 更新。中身を 1 回実行し終えるたびに動きます

    動く順番は、初期化、条件、中身、更新、条件、中身、更新、と続き、条件が偽になった時点で終わります。条件を確かめるのは中身の 前 なので、最初から偽なら中身は 1 回も動きません。

    i++ は i = i + 1 と同じ意味で、変数を 1 増やす書き方です。2 ずつ増やしたいなら i += 2、逆に減らしたいなら i-- と書きます。この 3 つの部分はどれも自由に変えられるので、for は「決まった回数」だけでなく「決まった刻みで動かす」道具でもあります。

    ループ変数の住みか

    for (int i = 1; ...) のように丸カッコの中で宣言した i は、そのループの中だけで生きています。ループを抜けたあとに i を使うとコンパイルエラーになります。終わったあとも値を見たいときは、for より前で int i; と宣言しておき、for (i = 1; i <= 5; i++) と書きます。

    よくある失敗は、5 回回したいのに条件を i < 5 と書いてしまい 4 回しか回らない、というものです。1 から数えるなら i <= 5、0 から数えるなら i < 5 で、どちらも回数は 5 回です。回数は同じでも i の中身が違うので、その値を番号として表示するときは特に気をつけてください。

    もうひとつ、中身が 1 文だけのときは波カッコを省略できますが、あとから 2 文目を足したときに 2 文目がループの外に取り残されます。省略せず必ず波カッコを付ける習慣にしてください。

    では、成績表の見出しになる区切り線と、学生番号の一覧を for で出してみましょう。

    要件

    1. = を20個並べた区切り線を表示し、改行する
    2. No.1 から No.5 までを1行ずつ表示する
    3. 最後にもう一度、= を20個並べた区切り線を表示する
    4. printf を並べて書かず、すべて for で出す

    ヒント

    printf("=") には改行が入らないので、ループを抜けたあとに printf("\n") を1回書きます

    番号は 1 から始めたいので、条件は i <= 5 になります

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/07

    関連レッスン

    • while

      条件を満たす間だけ繰り返せるようになります。

    • do-while

      最低1回は必ず動く繰り返しを書けるようになります。

    • breakとcontinue

      ループの途中で抜けたり飛ばしたりできるようになります。

    • 二重ループ(九九)

      ループの入れ子を書けるようになります。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • 処理計算や代入を表す長方形
    • ループ繰り返し処理。矢印で戻すか専用記号で示す
    • 変数データに名前をつけて参照する仕組み
    • コンパイルソースをバイトコードへ変換する処理
    main.c
    エディタを読み込んでいます

    メモ

    for文

    ⌘S で保存