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

    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分

    if文

    同じことしか言わないプログラム

    前回までで、点数を読み込んで合計や平均を出せるようになりました。ただし今のプログラムは、何点であっても同じことしか言いません。42点でも95点でも「平均は〜点です」と表示して終わりです。成績管理として使うなら、点数が低い学生のときだけ警告を出したいところです。

    「あるときだけ実行する」を書くのが if 文です。

    c

    if (score < 60) {
        printf("補習の対象です\n");
    }

    if のうしろの丸かっこに書くのが条件式です。前回の比較演算子がそのまま使えます。C では条件式が成り立つと 1、成り立たないと 0 という値になり、0 以外を真、0 を偽として扱います。真のときだけ波かっこの中が実行され、偽なら波かっこごと飛ばされます。

    波かっこを省略しない

    C は、実行する文が1つだけなら波かっこを省略できます。

    c

    if (score < 60)
        printf("補習の対象です\n");

    これも正しく動きます。危ないのは、あとから1行足したくなったときです。

    c

    if (score < 60)
        printf("補習の対象です\n");
        printf("担当に連絡してください\n");

    字下げは揃っているので2行とも条件の中に見えます。しかし if が支配しているのは直後の1文だけなので、2行目は点数に関係なく必ず実行されます。C はコンパイルの前に字下げを取り払って読むので、見た目のインデントには何の意味もありません。最初から波かっこを書いておけば、この事故は起きません。本コースでは1行でも必ず波かっこを付けます。

    else でもう一方を書く

    条件が偽のときにやることは else に書きます。

    c

    if (score >= 60) {
        printf("合格です\n");
    } else {
        printf("不合格です\n");
    }

    if と else は必ずどちらか一方だけが実行されます。両方実行されることも、どちらも実行されないこともありません。だから「合格と不合格のどちらかを必ず1回表示する」を確実に書けます。

    = と == を取り違えない

    C で最も有名な間違いが、比較のつもりで代入を書いてしまうものです。

    c

    if (score = 100) {

    これは score に 100 を代入し、その代入結果である 100 が条件になります。100 は 0 以外なので条件は必ず真、しかも score が書き換わってしまいます。比較は ==、代入は = です。多くのコンパイラは警告を出してくれるので、警告を読み飛ばさない習慣を今のうちに付けてください。

    要件

    1. scanf で整数を1つ読む
    2. まず「点数は72点です」の形で必ず表示する
    3. 60点未満のときだけ、続けて「補習の対象です」と表示する
    4. 60点ちょうどのときは警告を出さない

    ヒント

    「60点未満」は score < 60 です。60 を含めたくないので <= ではありません

    警告の行は if の波かっこの中に入れます。外に出すと必ず表示されてしまいます

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

    関連レッスン

    • else ifで多分岐

      段階のある評価を書けるようになります。

    • switch文

      値ごとの分岐を switch で書けるようになります。

    • 三項演算子

      条件によって値そのものを切り替えられるようになります。

    • 定番 FizzBuzz判定

      複合条件の定石を書けるようになります。

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

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

    • 比較演算子=は代入、==は値の比較。
    • 演算子//は切り捨て除算(7 // 2 = 3)。
    • コンパイルソースをバイトコードへ変換する処理
    • インデントPythonはインデント(通常スペース4つ)でコードブロックを定義する。
    main.c
    エディタを読み込んでいます

    メモ

    if文

    ⌘S で保存