ゾンビでもわかるC言語プログラミング

C言語入門者の応援をします

switch文

switch文は、ある値に応じて処理を変えたいときに使用できます。

以下のコードを実行してみてください。

#include <stdio.h>

int main() {
  int d = 2;

  switch (d) {
    case 0:
      printf("dの値は0です。\n");
      break;

    case 1:
      printf("dの値は1です。\n");
      break;

    case 2:
      printf("dの値は2です。\n");
      break;

    case 3:
      printf("dの値は3です。\n");
      break;

    default:
      printf("dの値はそれ以外です。\n");
      break;
  }

  return 0;
}

出力は以下になります。

dの値は2です。

switch文の構文は以下になります。

switch (式) {
  case 定数1:
    処理
    break;
  case 定数2:
    処理
    break;

  ...

  default:
    処理
    break;
}

式の値と定数の値が同じときに、break までの処理を行います。
また、どの定数も当てはまらない場合は、default が実行されます。

注意が必要なのは、break を記述しないとその後の処理も行うことです。

#include <stdio.h>

int main() {
  int d = 2;

  switch (d) {
    case 0:
      printf("dの値は0です。\n");
      break;

    case 1:
      printf("dの値は1です。\n");
      break;

    case 2:
      printf("dの値は2です。\n");

    case 3:
      printf("dの値は3です。\n");
      break;

    default:
      printf("dの値はそれ以外です。\n");
      break;
  }

  return 0;
}

上記のように、break を書かなかった場合、以下の出力のように break が現れるまで処理をしてしまいます。

dの値は2です。
dの値は3です。

また、以下のように文字も比較できます。

#include <stdio.h>

int main() {
  char c = 'b';

  switch (c) {
    case 'a':
      printf("cの値はaです。\n");
      break;

    case 'b':
      printf("cの値はbです。\n");
      break;

    case 'c':
      printf("cの値はcです。\n");
      break;

    default:
      printf("cの値はそれ以外です。\n");
      break;
  }

  return 0;
}

出力

cの値はbです。

書籍

新・明解C言語 入門編 (明解シリーズ)

新・明解C言語 入門編 (明解シリーズ)

苦しんで覚えるC言語

苦しんで覚えるC言語

やさしいC 第5版 (「やさしい」シリーズ)

やさしいC 第5版 (「やさしい」シリーズ)

C実践プログラミング 第3版

C実践プログラミング 第3版