C言語基礎|if文による分岐処理

第3章のはじめに ― プログラムに「判断力」を持たせよう

これまでのプログラムは、上から下へ、決められた順番で処理を行ってきました。
しかし、実際のプログラムはそれだけでは足りません。

たとえば、

  • 点数が合格点以上なら合格と表示する。
  • 入力された値が危険な範囲なら警告を出す。
  • 条件に合うときだけ処理を実行する。

といったように、状況に応じて動きを変える必要があります。

この章では、プログラムに判断力を与える最初の一歩として
if文による分岐処理 を学んでいきます。

if文とは何をする文なのか

if は英語の if(もし〜なら)と同じ意味です。

C言語の if文は、

もし条件が成り立ったら、この処理を実行する

という判断をプログラムにさせるための文です。

基本の形は次のとおりです。

構造意味
if (式) 文式が成り立つときだけ文を実行

この if 文によって、
プログラムの流れは 条件によって分岐 するようになります。

if文の書式と読み方

if文の最も基本的な書式は次の形です。

if (制御式)
    実行する文;

ここで重要なのが ( ) の中に書かれる 制御式 です。

用語説明
制御式条件判定に使われる式
非0条件が成り立つ
0条件が成り立たない

制御式を評価した結果が
0以外 → 実行する
0 → 実行しない

というルールになっています。

if文の流れを図でイメージする

if文の処理の流れは、次のように考えると分かりやすいです。

if文の流れ

  • 制御式を評価する
  • 値が非0なら → 文を実行
  • 値が0なら → 文を飛ばして次の処理へ

一本道だったプログラムに、
「分かれ道」ができるイメージです。

サンプル①:条件に合うときだけメッセージを表示する

ここでは、
入力した整数が10未満だった場合に注意メッセージを出す
というプログラムに変更してみましょう。

サンプルプログラム

プロジェクト名:chap3-1-1 ソースファイル名:chap3-1-1.c

Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。

// 入力した整数が10未満かを判定する
#include <stdio.h>

int main(void)
{
    int value;

    printf("数値を入力してください:");
    scanf("%d", &value);

    if (value < 10)
        puts("10より小さい値が入力されました。");

    return 0;
}

実行例

数値を入力してください:7
10より小さい値が入力されました。

数値を入力してください:15

15 の場合は条件が成り立たないため、何も表示されません。

制御式は「真か偽か」を判断している

if文の制御式は、
「正しいかどうか」を数値で判断しています。

評価結果意味
非0条件が成り立つ(真)
0条件が成り立たない(偽)

先ほどの例では、

value < 10

という比較式が使われており、
条件が成り立つと 1、成り立たないと 0 になります。

サンプル②:偶数かどうかを判定する

今度は、
入力した数が偶数だったときだけ表示する
プログラムにしてみましょう。

サンプルプログラム

プロジェクト名:chap3-1-2 ソースファイル名:chap3-1-2.c

Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。

// 入力した整数が偶数かを判定する
#include <stdio.h>

int main(void)
{
    int number;

    printf("整数を入力してください:");
    scanf("%d", &number);

    if (number % 2 == 0)
        puts("その数は偶数です。");

    return 0;
}

実行例

整数を入力してください:8
その数は偶数です。

整数を入力してください:7

7 は偶数ではないため、表示されません。

剰余演算子とif文の相性

% 演算子は、if文の条件判定でとてもよく使われます。

意味
n % 2偶数か奇数か
n % 55で割り切れるか

剰余が 0 かどうかを調べることで、
「割り切れるか」「偶数か」といった判断が簡単にできます。

if文を使うとプログラムが賢くなる

if文を使うことで、

  • 条件に応じた処理
  • 必要なときだけ実行
  • 入力値に反応する動き

が可能になります。

第3章では、この if文を出発点として、
if–else文複数条件の分岐 へと進んでいきます。

この序章が理解できれば、
プログラムが考えて動く」世界への第一歩は完了です 👍
次は if–else に進むと、一気に表現力が広がりますよ。