switch文を使った条件分岐

switch 文を使用すると、対象の変数の値を複数の値と順に比較していき、条件が真になったところに記載されている処理を実行させることができます。ここでは C 言語で switch 文を使った条件分岐を行う方法について解説します。

(Last modified: )

switch文を使った条件分岐

条件分岐の中には変数に格納されている値を色々な値と比較したい場合があります。 if 文を使っても次のように記述することができます。

int x = 3;

if (x == 1) {
  printf("数値は1です\n");
}else if (x == 2) {
  printf("数値は2です\n");
}else if (x == 3) {
  printf("数値は3です\n");
}else{
  printf("他の値です\n");
}

if 文は条件式の箇所に任意の条件式を記述できますが、上記のようにある変数の値を色々な値と比較したい場合には switch 文を使うと便利な場合があります。 switch 文の書式は次のようになっています。

switch(式){
  case 定数1:
    式が定数1の時に実行する処理;
    ...
    break;
  case 定数2:
    式が定数2の時に実行する処理;
    ...
    break;

  default:
    どの定数にも一致しない時に実行する処理;
    ...
}

「式」には整数の値、又は整数の値になる式を記述します。例えば整数型の値を持つ変数や、その変数に対して「変数 + 10」のように整数値の結果となる式などです。

そして「式」の値と比較するための値を定数として case のあとに記述していきます。「式」は整数の値ですから比較するための定数も整数の値となります。また定数には変数は使用できませんので固定の値を記述します。

case は何個でも記述できますので比較したい整数値の数だけ記述して下さい。またどの定数にも一致しなかった場合に処理を行いたい場合には default: のあとに記述します。

実際のプログラム例としては次のようになります。

int x = 3;

switch(x){
  case 1:
    printf("数値は1です\n");
    break;
  case 2:
    printf("数値は2です\n");
    break;
  case 3:
    printf("数値は3です\n");
    break;
  default:
    printf("他の値です\n");
}

なお break については次のページで詳しく見ていきます。

サンプルコード

では簡単なサンプルプログラムを作成して試してみます。

#include <stdio.h>

int main(void){
  int num;

  num = 2;
  printf("num = %d\n",num);

  switch(num){
    case 1:
      printf("数値は1です\n");
      break;
    case 2:
      printf("数値は2です\n");
      break;
    case 3:
      printf("数値は3です\n");
      break;
    default:
      printf("他の値です\n");
  }

  return 0;
}

上記を「test6-1.c」の名前で保存します。まずコンパイルを行います。

条件分岐(switch)

コンパイルが終わりましたら「test6-1」と入力して実行します。

条件分岐(switch)

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。