【JavaScript】条件分岐:if文

条件分岐をつくる制御文(if文、if〜else if〜else文)
プログラミングをする上でよく使われる制御文について説明します。
制御文は、プログラミングの流れを必要に応じて変えたいときに使います。
if文「もし〜だったら・・・する」という、条件分岐をつくる制御文です。
条件が「成り立った場合」「成り立たなかった場合」の2通り以上のプログラムの流れを用意することができます。


if文は以下のように記述します。

//条件分岐(if文)
if(条件式1){
 処理1; //「{}(中カッコ)で囲まれた部分を「ブロック」といいます」
 }else{
 処理2; //「{}(中カッコ)で囲まれた部分を「ブロック」といいます」
}


複数の条件分岐は以下のように記述します。

//条件分岐(if〜else if〜else文)
if(条件式1){
 処理1;
 }else if(条件式2){
 処理2;
 }else{(条件式3)
 処理3;
}


<例題1>
if文を使って年齢の結果を表示します。

<script type="text/javascript">
//条件分岐(if文)
var age = 5;

if (age == 20) {
	
	alert("20歳です。"); //条件式がtrueの場合のみ実行
	} else {
		
	alert("それ以外です。"); //「{}(中カッコ)で囲まれた部分を「ブロック」といいます」
}
</script>


<例題2>
if文と論理演算子を使って年齢によって結果を表示します。

<script type="text/javascript">
//&&(かつ),||(または) 論理演算子を使ったif文
var age = 5;
//年齢の範囲の確認
if (20 <= age && age < 30) {
	alert("20代です。");
	}else if(30 <= age && age < 40){
		alert("30代です。");
	}else if(40 <= age && age < 50){
		alert("40代です。");
	}else{
		alert("それ以外です。");
}
</script>


<例題3>
if文を使ってBMIの値によって結果を表示します。

<script type="text/javascript">
//BMIの計算

var bmi = 40;

/*
*18.5未満 痩せすぎ
*25.0未満 普通
*35未満 肥満
*35以上 高肥満度
*/

if (bmi < 18.5) {
	alert("痩せすぎ");
} else if(bmi<25) {
	alert("普通");
} else if(bmi<35) {
	alert("肥満");
} else if{
	alert("高肥満度");
}

/*
*条件式は上から順番に実行される。
*論理演算子(&&、||)を使った範囲指定は間違ってないが、最適ではない。
*入れ子になったif文を使うと負の数字の条件を除外できる
*/
</script>


<例題4>
if文を使っておみくじの結果を表示します。

<script type="text/javascript">
/*
*おみくじ
*var om = Math.random(); //乱数(0〜1)
*/

if(om<0.1){
	//確率は10%
	alert("大吉");
}else if(om<0.3){
	//確率は20%
	alert("吉");
}else if (om<0.5) {
	//確率は40%
	alert("小吉");
}else if (om<0.7) {
	//確率は60%
	alert("凶");
}else {
	alert("大凶");
}

/*
*小吉、凶、大凶を追加する
*条件式は上から実行される!!
*/
</script>


入れ子になったif文
if文をはじめとする制御文では、処理の中にさらに制御文を含めることができます。
このような入れ子のことをネストといいます。

if(条件式1){
 if(条件式2){
 条件式1と条件式2が「true」の場合の処理;
 }else{
 条件式1が「true」、条件式2が「false」の場合の処理;
}else{
条件式1が「false」の場合の処理;
}


<例題5>
if文のネストを使って得点の結果を表示します。

<script type="text/javascript">
a = 90;

if(a > 80){
 if(a == 100){
 alert("満点です");
 }else{
 alert("もう少しです");
 }
}else{
alert("頑張りましょう");
}
</script>