switch文
プログラムを書くときの構文だよ
条件分岐を書くときに使うよ
3つ以上に処理が枝分かれするときに使うよ
簡単に書くよ
switch文(読:スィッチブン 英:switch statement)とは
プログラミングで使う構文のひとつ
であり
処理が3つ以上に枝分かれする条件分岐を書くときに使う構文
です。
詳しく書くよ
順番に見ていきましょう。
プログラムは「人間様の代わりにコンピュータさんにあれこれ命令してくれるやつ」ね。
このプログラムを実際に作る作業を「プログラミング」と言います。
プログラミングはコンピュータさんに仕事を指示する行為です。
「この場合は、あれしろ」「この場合は、これしろ」と細かく指定していきます。
さて、このコンピュータさんに対する指示ですが、条件によって、やることを変えたい場合があります。
例えば「ケーキがあったらケーキを食べる、ミカンがあったらミカンを食べる、イチゴがあったらイチゴを食べる、どれもなければ暴れる」とかですね。
多くのプログラミング言語で用意されている、このような処理を書くときの構文のひとつが「switch文」です。
「このような処理」は一般的に「条件分岐」と呼ばれます。
switch文の書き方は
switch(今日のおやつ){
case ケーキ:
喜んで食べる
break;
case ミカン:
そこそこ喜んで食べる
break;
case なし:
暴れる
break;
default :
何もしない
}
のような形が一般的です。
プログラミング言語によって細かい違いはありますけどね。
switch文の処理の流れを簡単に説明しておきましょう。
まず
switch(今日のおやつ){
でswitch()の中に書かれているのが、枝分かれのどこに行くかを判断する材料です。
例では「今日のおやつ」が判断材料になります。
今日のおやつが「ケーキ」だった場合は
case ケーキ:
喜んで食べる
break;
のところに移動します。
もう少し正確に書くと
case ケーキ:
の行です。
今日のおやつが「ミカン」だった場合は
case ミカン:
そこそこ喜んで食べる
break;
のところに移動します。
もう少し正確に書くと
case ミカン:
の行です。
該当する「case」の場所に移動するのです。
なお、どの「case」にも一致しない場合は
default :
何もしない
のところに移動します。
もう少し正確に書くと
default :
の行です。
該当する「case」(もしくは「default」)の場所に移動したら、その位置から処理を再開します。
例えば、今日のおやつが「ケーキ」だったとしましょう。
case ケーキ:
喜んで食べる
break;
の
case ケーキ:
の行に移動して処理が再開します。
次の行は
喜んで食べる
です。
きっと、美味しくケーキを食べたのでしょう。
その次の行は
break;
です。
「break」は「後の処理は、すっ飛ばしてね!」な指定です。
「break」が来たら、switch文を抜けます。
実は、この「break」が、とても大事なのです。
switch文がやってくれることは
switch()内の判断材料と一致する「case」に処理が移る
です。
それだけです。
それ以上の役割は ありません。
何が言いたいかというと「break」がない場合、それ以降の処理もやっちゃいます。
例えば、うっかり
switch(今日のおやつ){
case ケーキ:
喜んで食べる
case ミカン:
そこそこ喜んで食べる
case なし:
暴れる
default :
何もしない
}
と書いたとしましょう。
「break」が、ありませんね。
今日のおやつがケーキだった場合
case ケーキ:
のところに処理が移動します。
次の行は
喜んで食べる
です。
実行されます。
これで終わりでは ありません。
さらに、次の行以降の
case ミカン:
そこそこ喜んで食べる
case なし:
暴れる
default :
何もしない
も実行されるのです。
そのとき「case」と「default」は無視されます。
「case」と「default」は処理では ありません。
移動先の目印です。
つまり「break」なしで
switch(今日のおやつ){
case ケーキ:
喜んで食べる
case ミカン:
そこそこ喜んで食べる
case なし:
暴れる
default :
何もしない
}
と書いて、今日のおやつがケーキだった場合、処理としては
・喜んで食べる
・そこそこ喜んで食べる
・暴れる
・何もしない
が実行されます。
しつこいですが忘れないでくださいね。
switch文というのは
switch()内の判断材料と一致する「case」に処理が移る
だけなのです。
最後に、switch文の内容は、すべてif文に書き換えられます。
switch(今日のおやつ){
case ケーキ:
喜んで食べる
break;
case ミカン:
そこそこ喜んで食べる
break;
case なし:
暴れる
break;
default :
何もしない
}
であれば
if(今日のおやつ == ケーキ){
喜んで食べる
}else if(今日のおやつ == ミカン){
そこそこ喜んで食べる
}else if(今日のおやつ == なし){
暴れる
}else{
何もしない
}
と書けば同じ処理になります。
一言でまとめるよ
まぁ「switch文」って単語が出てきたら「プログラミングで条件分岐を書くときの構文なんだな~」と お考えください。
おまけ
■訳してみるよ
「switch(スイッチ)」の意味は「切り替える」とか「切り替わる」とか「スイッチ(何かを切り替える装置)」とかです。
「文」は日本語ですね。
何となく くっつけると
「切り替わる」文
となります。






