C言語でswitch文
auです。
C言語でswitch文の使い方について調べたのでまとめたいと思います。
switch文はいつ使うか
switch文は条件によって処理を分けるときに使います。
例えば、順位によって何位ですという文を表示したり、サイコロの目によって処理を変えたりできます。ようはif文と同じ分岐処理です。
switch文とif文の違いは、二分岐と多分岐での処理速度の速さが変わることです。
二分岐:20歳以上でお酒が買えるか、買えないかみたいな2通り(TrueかFalse)しかない分岐
多分岐:サイコロ(1~6)を振った際に出た目によって変わるような、3つ以上の分岐
二分岐ではif文のほうが早く、多分岐ではswitch文のほうが早く処理が終わるという違いがあります。
if文は上から順番に処理していくのに対し、switch文は同じ数字を見つけるという処理の手順になるため、処理速度に差がでるそうです。
switch文を使ってサイコロの目を出してみる
switch文を実際に使ってみます。
switch文の書き方は以下の通りです。
switch(式) { case 場合1: 式が場合1と一致したときの処理 break; case 場合2: 式が場合2と一致したときの処理 break; default: 式がどの場合とも一致しなかったときの処理 }
サイコロの場合で書いてみます。
#include<stdio.h> int main(){ int dice; dice = 2; switch(dice) { case 1: printf("サイコロの目は1です\n"); break; case 2: printf("サイコロの目は2です\n"); break; case 3: printf("サイコロの目は3です\n"); break; case 4: printf("サイコロの目は4です\n"); break; case 5: printf("サイコロの目は5です\n"); break; case 6: printf("サイコロの目は6です\n"); break; default: printf("サイコロの数は1~6までです\n"); } }
実行結果
サイコロの目は2です
まずint型のdiceを宣言して、diceに2を代入します(これがサイコロの目です)。
その後にswitch(dice)として、diceには2が代入されているので、2の場合の処理をしてくれるようにします。
その下にcaseを使って場合の処理をそれぞれ書きます。
そして最後に、defaultを使ってどの場合にも合わなかったときの処理をします。