C 言語における switch case 文

CCBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

C 言語では、複数の選択肢がある場合にプログラムの実行フローを制御するために switch case 文が使用されます。これは C 言語の決定的な文の 1 つです。switch case 文は式を評価し、それを複数の値と照合して対応するコードブロックを実行します。

この実験では、例を使って C 言語で switch case 文をどのように使用するか学びます。

基本的な switch case 構文

#include <stdio.h>

int main() {
  int num = 2;
  switch(num) {
    case 1:
      printf("Number is 1");
      break;
    case 2:
      printf("Number is 2");
      break;
    case 3:
      printf("Number is 3");
      break;
    default:
      printf("Number is not 1, 2, or 3");
  }
  return 0;
}

このプログラムは値が 2 の整数 num を宣言し、switch case 文を使ってその値がどのケースラベルと一致するかをチェックします。num の値は 2 なので、このコードの出力は Number is 2 になります。

break 文を使用しない場合

#include <stdio.h>

int main() {
  int num = 2;
  switch(num) {
    case 1:
      printf("Number is 1\n");
    case 2:
      printf("Number is 2\n");
    case 3:
      printf("Number is 3\n");
    default:
      printf("Number is not 1, 2, or 3\n");
  }
  return 0;
}

このプログラムは値が 2 の整数 num を宣言し、break 文を使用せずに switch case 文を使っています。break 文がないため、次の break 文または switch case 文の終わりまで、その後のすべての文が実行されます。このプログラムの出力は以下の通りになります。

Number is 2
Number is 3
Number is not 1, 2, or 3

文字型データ型を使用する

#include <stdio.h>

int main() {
  char grade = 'B';
  switch(grade) {
    case 'A':
      printf("Excellent");
      break;
    case 'B':
      printf("Good");
      break;
    case 'C':
      printf("Average");
      break;
    default:
      printf("Invalid grade");
  }
  return 0;
}

このプログラムは値が 'B' の文字型変数 grade を宣言します。grade の値がどのケースラベルと一致するかをチェックするために switch case 文を使用しています。このコードの出力は Good になります。

ネストされた switch case

#include <stdio.h>

int main() {
  int num1 = 2, num2 = 3;

  switch(num1) {
    case 1:
      switch(num2) {
        case 1:
          printf("Number is 1");
          break;
        case 2:
          printf("Number is 2");
          break;
        default:
          printf("Number is not 1 or 2");
          break;
      }
      break;
    case 2:
      switch(num2) {
        case 3:
          printf("Number is 3");
          break;
        case 4:
          printf("Number is 4");
          break;
        default:
          printf("Number is not 3 or 4");
          break;
      }
      break;
    default:
      printf("Invalid input");
  }
  return 0;
}

このプログラムはそれぞれ値が 2 と 3 の 2 つの整数型変数 num1num2 を宣言します。その後、ネストされた switch case 文を使用して num1num2 の値がどのケースラベルと一致するかをチェックします。このコードの出力は Number is 3 になります。

まとめ

この実験では、C 言語における switch case 文の使い方を例を交えて学びました。異なるデータ型で switch case 文を使う方法、break 文を使わずに使う方法、および switch case 文をネストする方法を学びました。