C言語のおさらい 条件分岐 switch文の使い方

switch 文の書式

条件により、選択する処理が複数になる「多分岐型」をC言語で表すときは、「switch 文」を使う。

書き方はこのような感じ

switch (式) {

case 値1:
 値1が成立していたときに実行する文;
 break;

case 値2:
 値2が成立していたときに実行する文;
 break;

case 値3:
 値3が成立していたときに実行する文;
 break;

default:
 すべてのcaseが成立しないときに実行する文;
 break;
}



  • switch (式) の()内には、通常整数型か文字型の変数名を指定する。
  • 変数の値とcase 値が一致した時に「:」以下の文を実行する。
  • 「:」以下の文が複数ある場合でも{}をつけなくてよい。
  • caseごとに処理の終わりに「break;」を書く。
  • defaultで実行する文がない場合、defaultは省略できる。

switch 文を書いてみる

switch 文の特徴として、「変数の値とcase 値が一致した時に「:」以下の文を実行する。」があります。
なのでこのようなプログラムを実行すると、画像の結果になります。

#include <stdio.h> 
int main(void) {
 
 //変数の宣言
 int x;

 //初期化
 x = 0;

 //入力
 printf("0から3の数値を入力してね→");
 scanf("%d", &x);

 //処理
 switch (x) {

 case 0:
  printf("あいうえお\n");

 case 1:
  printf("かきくけこ\n");

 case 2:
  printf("さしすせそ\n");

 case 3:
  printf("たちつてと\n");

 default:
  printf("なにぬねの\n");
 }

 return 0;
}


実行結果のように、case 0:以降の処理がすべて実行されていることがわかります。
なので、目的の処理だけを実行するには「break 文」を書く必要があります。


  • break 文・・・簡単に説明すると「文のブロックから出る」という命令文。「break;」と書かれた後、次の「}」までの処理はすべて行われません。
処理を複数に分けたいときは、case の区切りに「break;」を書いていかなくてはならない。

break 文を書いて区切ったプログラム

#include <stdio.h> 
int main(void) {
 
 //変数の宣言
 int x;

 //初期化
 x = 0;

 //入力
 printf("0から3の数値を入力してね→");
 scanf("%d", &x);

 //処理
 switch (x) {

 case 0:
  printf("あいうえお\n");
  break;

 case 1:
  printf("かきくけこ\n");
  break;

 case 2:
  printf("さしすせそ\n");
  break;

 case 3:
  printf("たちつてと\n");
  break;

 default:
  printf("なにぬねの\n");
  break;
 }

 return 0;
}

実行結果がこちら


switch 文を使って分岐処理を行いたいときは、「break;」を忘れずに書いておく。






コメント

このブログの人気の投稿

STM32F401でLチカをする(LED点灯)

STM32CubeIDEに日本語化プラグインを導入する

STM32F401-Nucleoでシリアル通信をやってみる