今回は完全一致か否かの条件で処理を分けるswitch文の記述の仕方を紹介します。
if文もswitch文もだいたい同じ意味ですが、switch文も使えると応用の効く技術者になりますのでしっかりと覚えておくと良いでしょう。
- 条件に応じて複数の処理を行いたい
- 完全一致のみ抽出される振り分けをしたい
難易度(MAX10) | ★★★★★☆☆☆☆☆ |
switch文の概要
switch文の基本的な構文は以下のとおりです。
switch (式) | 判定式に応じて処理を振り分ける |
case 値: 処理 | 条件を満たせば処理を実行する |
defat: 処理 | どの条件にも満たさなかった場合に実行する |
if文の場合は10〜100や20以上の場合など割と幅広い範囲で条件を設定できるがswitch文の場合は式と値が完全一致した場合のみ処理します。そのためクイズや返答の決まったアンケートなどに使えるプログラムです。
if文でもswitch文と同じことは可能だが「else if」の記述を大量に書く事になるので、場合によってはswitch文を使った方が効率的になります。Java Scriptで処理を複数に分けたい場合は基本はif文で処理が複雑になりそうだったらswitch文を使えば良いでしょう。
switch文の記述の仕方
具体的な記述の仕方は以下のサンプルを使って説明します。
const Q = '東京都'
switch (Q) {
case '東京都':
alert('正解です');
break;
case '東京':
alert('惜しい!!');
break;
default:
alert('不正解です');
break;
}
上記のプログラムでは、Qの値には「東京都」の文字列が入っています。
switchに入れた処理では、Qが「東京都」だったら「正解です」と返してね。「東京」だったら「惜しい!!」と返してね。それ以外は「不正解です」と返してね。
と言った指示を出しています。
今回の場合はQの値は「東京都」なので下記の様に「正解です」と表示されます。

switch文はcaseで始まりbreak;までを実行しようとします。なのでbreak;の記述がない場合はbreak;が見つかる場所までの処理を行います。
この性質を使えば次の様に処理を複数にまとめられ、どの条件でも「果物です」との返答に対応させる事が出来ます。
const Q = 'みかん'
switch (Q) {
case 'りんご':
case '梨':
case 'ぶどう':
case 'さくらんぼ':
case 'みかん':
alert('果物です');
break;
default:
alert('果物ではありません');
break;
}
一応上記を解説しますと、
「りんご」「梨」「ぶどう」「さくらんぼ」「みかん」のいずれかの値だった場合、全て「果物です」と返事が来ます。
それ以外の値だった場合は全て「果物ではありません」との返事が来ます。
今回の場合はQは「みかん」になっているので下記の様に「果物です」との返答がきます。

またswitch文は===の厳密な等価である事で処理を行います。そのため100と文字列の「100」は違うものとして考えます。
なので下記のプログラムではdefault以降が処理されます。
const value = '100'
switch (value) {
case 100:
console.log('正しいです');
break;
default:
console.log('正しい値を入れて下さい');
break;
}
この様にifとは違った性質があるので使用するときには気を付けましょう。
以上が「【switch文】完全一致した条件に応じて処理を分ける:Java Scriptの基礎⑨」でした。
今回のswitch文に非常に似たif文の記述の仕方は下記の記事です。どちらも使えると応用の効く技術者になれるので覚えておきましょう。