あーりーです。
最近、JavaScriptの勉強にハマっています。
勉強というより、遊び感覚でのんびりと楽しみながらやってます。
JavaScriptの記事は「初心者のための超わかりやすいJavaScript入門」にまとめてあります。
さてさて。
先日は、JavaScriptの「switch文」について書きました。
今回も、そのへんのことを書いてみたいと思います。
「switch文」は「if文」にできる
今回のテーマは…
「switch文」は「if文」にできる!
です。
実際にやってみようと思います。
switch文
先日の「switch文」がこちらです。
<html> <head> </head> <body> <script> var x; x=prompt("どの方角に行く?",""); switch(x){ case "東": document.write("海があるよ"); break; case "西": document.write("山があるよ"); break; case "南": document.write("砂漠があるよ"); break; case "北": document.write("草原があるよ"); break; default: document.write("もう1回言って"); } </script> </body> </html>
冒険の旅に出た「勇者」が、町の人に話しかけて情報をもらう…
という設定です。
詳しくは先日の記事「よくわかるswitch文の基本」をご覧ください。
実行すると?
上の内容をメモ帳などのエディタにコピペしてHTML形式で保存し、そのファイルを開く…
入力ダイアログが出てきて「どの方角に行く?」と聞かれます。
入力欄に「東」「西」「南」「北」いずれかの文字を入れると、その方角に応じた情報が返ってきます。
if文
これと同じ内容を「if文」でも表現することができます。
それがこちらです。
<html> <head> </head> <body> <script> var x; x=prompt("どの方角に行く?",""); if(x=="東"){ document.write("海があるよ"); }else if(x=="西"){ document.write("山があるよ"); }else if(x=="南"){ document.write("砂漠があるよ"); }else if(x=="北"){ document.write("草原があるよ"); }else{ document.write("もう1回言って"); } </script> </body> </html>
※「if文」ってそもそも何だっけ?という場合は「よくわかるif文の基本」をご覧ください。
比較
「switch文」と「if文」を比較してみますね。
たとえば…
入力ダイアログに「東」と入力した場合です。
「switch文」では、「東」と入力されたかどうかの判別を、この部分でやっています。
case "東":
一方、「if文」では、この部分でやっています。
if(x=="東"){
表現は違いますが、どちらも変数「x」に代入された情報が「東」なのか、そうじゃないのかを判別して、処理しています。
「if文」を「switch文」にできるとは限らない
上で見てきたように、「switch文」は「if文」にできます。
でもその逆は、できるとは限りません。
つまり…
「if文」を「switch文」にできるとは限らないんです。
「if文」は幅のある判定ができる
「if文」にしかできないことがあります。
幅のある判定です。
たとえば…
if(x>=100){
とか。
これは、変数「x」が100以上であるかどうかを判定しています。
ずばり100じゃなくてもいいんです。
100以上であればOK!という、幅のある判定です。
※以上や以下などの比較演算子についてはコチラをご覧ください。
「switch文」は幅のある判定ができない
こうした幅のある判定が「switch文」ではできません。
だから、「if文」で幅のある判定をしている場合は、それを「switch文」に書き換えることはできないんです。
以上~。
「switch文」は「if文」にできるよ、でもその逆はできるとは限らないよ!
という話でした。
今回はこれでおしまいです。
最後までお付き合いありがとうございました。
JavaScriptの記事は、この記事も含めて「初心者のための超わかりやすいJavaScript入門」にまとめてあります。よろしければご覧ください。