3.2 switch文

Contents

Switch文構文

条件式を判定して多方向分岐を行う。

switch (式) {
case 定数:
  ブロック文
default:
  デフォルト・ブロック文
}

Berak文構文

  1. switch文で、case句の処理を打ち切りブロックを脱出するときに用いる。 ⇒ 説明済み
  2. for文、while文などのループから脱出するときに、if文と併用して用いる。
break;

 

例題

毎月の末日の判断

#include <stdio.h>

int main()
{
  int n;
  
  printf("月を入力して下さい --> ");
  scanf("%d", &n);
  switch(n){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      printf("--31日--\n");
      break;
    case 4: 
    case 6: 
    case 9: 
    case 11: 
      printf("--30日--\n");
      break;
    case 2:
     	printf("--28日--\n");
      break;
    default: 
      printf("入力データの誤りです。\n");
    break;
  }
  getch();
  return 0;
}

 

演習

  1. 演習3-12 (A, B クラス)
  2. 演習3-13 (C, D クラス)
  3. 簡易電卓(自由選択)

実行例

加減乗除(+,-,*,/)ができます。指定例:2+5、終了時はq
ready : 6.5 * 3
--> 19.5

ヒント:

  • 演算記号の判定: switch 文
  • 計算式の入力: scanf( “%lf %c %lf”, &a, &op, &b );

(変換指定文字列で、期待していなかったデータを入力すると、 バッファのデータをそのまま残し、動作を終了してしまいます。)