[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

switch文

pointこの用語のポイント

pointプログラムを書くときの構文だよ

point条件分岐を書くときに使うよ

point3つ以上に処理が枝分かれするときに使うよ

スポンサーリンク

簡単に書くよ

switch文とは

プログラミングで使う構文のひとつ
であり

処理が3つ以上に枝分かれする条件分岐を書くときに使う構文
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

プログラムは「人間様の代わりにコンピュータさんにあれこれ命令してくれるやつ」ね。
このプログラムを実際に作る作業を「プログラミング」と言います。

switch文

プログラミングは、コンピュータさんに対して、仕事を指示する行為です。
「この場合は、あれしろ」「この場合は、これしろ」と、細かく指定していきます。

さて、このコンピュータさんに対する指示ですが、条件によって、やることを変えたい場合があります。
例えば「ケーキがあったらケーキを食べる、ミカンがあったらミカンを食べる、イチゴがあったらイチゴを食べる、どれもなければ暴れる」とかですね。

多くのプログラミング言語で用意されている、このような処理を書くときの構文のひとつが「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{
  何もしない
}


と書けば同じ処理になります。

image piyo2

一言でまとめるよ

まぁ「switch文」って単語が出てきたら「プログラミングで条件分岐を書くときの構文なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク