C言語(C/C++) 制御フロー のドキュメント

if文による条件分岐

C/C++で if文を使った条件分岐処理について紹介します。

概要

C/C++ では if文を利用すると条件式が真である場合、偽である場合で処理を分岐させることができます。

書式

下記の書式を利用します。

条件式が真である場合に中括弧のブロック"{ ... }"内のコードが実行されます。

if (条件式){
}


条件式が真である場合にif文直後の中括弧のブロック"{ ... }"内のコードが実行されます。条件式が偽である場合にはelseの後の中括弧のブロック"{ ... }"内のコードが実行されます。

if (条件式){
}
else{
}


下記の書式の場合は、最初に[条件式1]の式が評価され、真であれば直後のブロック内のコードが実行されます。[条件式1]が偽であった場合は、[条件式2]が評価されます。[条件式2]が真であれば、直後のブロックのコードが実行されます。偽である場合は以降のelse if の条件式を順に評価します。

if (条件式1){
}
else if (条件式2){
}
...
else if (条件式n){
}

下記の書式の場合も先の動作と同じですが、if, else if すべての条件式が偽であった場合は、else のブロック内のコードが実行されます。

if (条件式1){
}
else if (条件式2){
}
...
else if (条件式n){
}
else{
}

ブロックを利用しない場合の書式

条件式が真である場合は[処理]に記述したコードが実行されます。

if (条件式) 処理;

条件式が真である場合は[処理1]に記述したコードが実行されます。条件式が偽である場合はelseの後ろの[処理2]のコードが実行されます。

if (条件式) 処理1 else 処理2;

プログラム例

if文を利用したプログラム例を紹介します。

コード

コンソールアプリケーションを作成し、下記のコードを記述します。

#include "stdafx.h"
#include <stdlib.h>

int main()
{
  printf("数値を入力してください。\r\n");
  char buffer[16];
  fgets(buffer, 16, stdin);

  int value = atoi(buffer);
  if (5 < value) {
    printf("入力された数値は5より大きいです。\r\n");
  }
  else {
    printf("入力された数値は5以下です。\r\n");
  }

  fgets(buffer, 16, stdin);
  return 0;
}

解説

下記のコードで、「数値を入力してください。」のメッセージを表示し、その後入力待ち状態になります。入力された数値は atoi()関数を用いて数値に変換しvalue変数に格納します。

  printf("数値を入力してください。\r\n");
  char buffer[16];
  fgets(buffer, 16, stdin);

  int value = atoi(buffer);


下記コードがif文による条件判定、分岐処理になります。今回のコードではvalue変数の値が 5以上であればif文のブロック内のprintf()のコードが実行されます。value変数の値が5以下の場合はif文の条件式は偽となるので、else以下の中括弧のブロック内のprintf()のコードが実行されます。
入力された数値が5より大きければ画面に「入力された数値は5より大きいです。」のメッセージが表示され、5以下の場合は「入力された数値は5以下です。」のメッセージが表示されます。

  if (5 < value) {
    printf("入力された数値は5より大きいです。\r\n");
  }
  else {
    printf("入力された数値は5以下です。\r\n");
  }


デバッグ時にプログラムが終了しないよう、入力待ちの状態で待機します。

  fgets(buffer, 16, stdin);

実行結果

プロジェクトを実行します。コンソールウィンドウが表示され、下図の画面が表示されます。「数値を入力してください」のメッセージが表示され、入力待ちの状態になります。
if文による条件分岐:画像1

"8"を入力します。入力後[Enter]キーを押します。
if文による条件分岐:画像2

「入力された数値は5より大きいです。」のメッセージが表示されます。
if文による条件分岐:画像3

再度、プログラムを実行します。実行後入力待ちの画面で、"2"を入力します。
if文による条件分岐:画像4

「入力された数値は5以下です。」のメッセージが表示されます。
if文による条件分岐:画像5

if文を利用して条件により処理が分岐するロジックを実装できました。

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2018-03-08
Copyright © 1995–2025 iPentec all rights reserverd.