C言語のswitchの使い方の学習
1.目的
- C言語でswitch文(条件分岐)について理解する。
目次
2.switch文とは
もし、AならばBしろのように、条件によって、処理を変えるためのもの。
役割としてはif文と同じ。
書き方:
switch(変数名) {
case 条件:
処理
break;
case 条件:
処理
break;
case 条件:
処理
break;
}
3.プログラムの作成
switch文を使って、変数の値によって違う処理を実行することを確認する。
#include <stdio.h> int main(void){ // Your code here! //変数宣言 int a; a = 1; //aの値によって、処理を変更 switch(a){ case 1://a=1の時実行 printf("a1=%d",a); break; case 2://a=2の時処理実行 printf("a2=%d",a); break; case 3://a=3の時処理実行 printf("a3=%d",a); break; default://a=1,2,3以外のとk処理実行 printf("a=%d(default)",a); break; } }
結果:https://paiza.io/projects/UmIZWgFX_TH3TlA5iSF0iw
4.プログラム説明
(1) switch(a){
変数aの値によって、処理を分岐
(2) case 1:
変数aの値が1だった時、処理を実行する。
(3) default:
変数aがcaseで指定されている条件以外だった場合、実行する。
5.プログラム作成2(よく使うやり方など)
typedef enum{ MODE1, //0 MODE2, //1 MODE3 //2 }Mode1; //名前 #include <stdio.h> int main(void){ // Your code here! //変数宣言 int state; state = 0; //初期化処理 state = MODE2; //モード設定 switch(state){ case MODE1: default: printf("mode1実行"); break; case MODE2: printf("mode2実行"); break; case MODE3: printf("mode3実行"); break; } }
実行結果:https://paiza.io/projects/AIB4gfZ2mUnaWkWhuvFYfg?language=c
(1) typedef enum{
・列挙型
・変数に一連の整数値を付けるのに使用する。
・今回の場合は、MODE1に0、MODE2に1、MODE3に2を設定している。
・これにより、ただ数値で分岐が書いてあるより、動作が分かりやすくなる。
6.プログラム作成(switchに使用できる条件)
typedef enum{ MODE1, //0 MODE2, //1 MODE3 //2 }Mode1; //名前 #include <stdio.h> int main(void){ // Your code here! //変数宣言 int state; int test=1; //変数testの宣言 state = 0; //初期化処理 state = MODE3; //モード設定 const int B = 2; //constで定数を宣言 switch(state){ case MODE1: default: printf("mode1実行"); break; case test: //これはエラー printf("test"); break; case state<5: //これはエラー printf("test2"); break; case B: //これは出来る。 printf("tes3"); break; } }
実行結果: https://paiza.io/projects/oDU9aQ1ocBdTpEI32Y6-rg?language=c
※switchには、ifのように等号(=)や不等号(<)を用いた条件の指定はできない。
条件に設定できるのは、定数のみ。
そのため、in test;のように、変数に数値を入れたものも条件としては使えない。
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・C言語基礎知識4(if文) - Project_OKI’s diary
・C言語基礎知識5(switch文) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・組み込みC言語基礎知識6(関数) - Project_OKI’s diary
・組み込みC言語基礎知識7(構造体1) - Project_OKI’s diary
参考