【JavaScript】分岐処理:switch文

switch文
switch文は、複数のcaseという選択肢から式の値に合うものを選択して処理を実行します。
式の値がどれにも当てはまらない場合はdefaultに進みます。
各選択肢の最後にはbreak文を記述し、選択した処理のみを行うようにします。

switch(式){
  case 値1: //:(コロン)を記述する
  処理1;
  break;
  case 値2:
  処理2;
  break;
  case 値3:
  処理3;
  break;
  default:
  処理4;
} //←breakが実行された時、ここにジャンプします。


<例題1>
簡単な福引きを実行するプログラミングをします。

<?xml version="1.0" encoding="utf-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>switch文:文字入力ダイアログを使った福引き</title>
</head>

<body>
<script type="text/javascript">
	//window.prompt:promptメソッドを使って文字入力ダイアログを表示します。
	fuku = window.prompt("福引きに挑戦!\n半角英数で1〜10の数字を入力してください。");
	switch(fuku){
		case (7):
		document.write("1等お(・∀・)め(・∀・)で(・∀・)と(・∀・)う!");
		break;

		case (5):
		document.write("2等が当たりました。商品は焼き鳥です(´・ω・`)つ--{}@{}@{}-");
		break;

		case (3):
		document.write("3等が当たりました。商品はイワシです(´・ω・`)つ <・))イワシ)><<");
		break;

		default:
		document.write("残念でしたハズレですm9(^Д^)プギャー");
		break;

	} //←breakが実行された時、ここにジャンプします。
</script>
</body>

</html>


Math.random()メソッドを使っておみくじゲームらしくしてみます。

var randnum = 1 + Math.floor( Math.random() * 10 );

上記のJavaScriptを実行すると、変数randnumに「1〜10」の範囲の整数がランダムに格納されます。
・Math.random()で0〜1未満の乱数を得る
・「* 10」で、欲しい値の最大値(より1つ上の数)をかける
・Math.floor(...)で、小数点以下を切り捨てる
・1を足すことで「1〜10」の範囲の整数が格納されます


<例題2>
Math.random()メソッドを使って福引きを実行するプログラミングします。

<?xml version="1.0" encoding="utf-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>乱数を使った福引き</title>
</head>

<body>
<script type="text/javascript">
	//「1〜10」までの整数をランダムに表示させます
	fuku = 1 + Math.floor( Math.random() * 10 );
	switch(fuku){
		case (7):
		document.write(fuku + "番です。1等お(・∀・)め(・∀・)で(・∀・)と(・∀・)う!");
		break;

		case (5):
		document.write(fuku + "番です。2等が当たりました。商品は焼き鳥です(´・ω・`)つ&#8212;{}@{}@{}-");
		break;

		case (3):
		document.write(fuku + "番です。3等が当たりました。商品はイワシです(´・ω・`)つ <・))イワシ)><<");
		break;

		default:
		document.write(fuku + "番です。残念でしたハズレですm9(^Д^)プギャー");
		break;

	}
</script>
</body>

</html>