ImpressCMS
HOME  >  JSCRIPT  > 制御文 > if ~もし***だったら~ > if文のネスト(複数使用)

 5 - 1 - 4 : if文のネスト(複数使用)

if文は、if文の中で、さらにif文を使って分岐させることが出来ます。
if(条件1){
 // 条件1が成立したときの処理
   if(条件2){
     // 条件2が成立したときの処理
   } else {
     // 条件2が成立しなかったときの処理
   }
} else {
 // 条件1が成立しなかったときの処理
   if(条件3){
     // 条件3が成立したときの処理
   } else {
     // 条件3が成立しなかったときの処理
   }
}
条件1が成立するとき
 条件1が成立したときに、さらに条件2が成立するかしないかで分岐が変わり
条件1が成立しないとき
 条件2が成立しないときに、さらに条件3が成立するかどうかで分岐が変わる
という分岐処理になります。

条件にあったものの中で、さらに詳しい条件を入れていく、つまり詳細な絞り込みですね。

今回は男女別の平均身長との比較をやってみます。
まずダイアログボックスで男性か女性かを確認し、そしてその身長を入力してもらいます。
令和3年の速報値では男性の身長は約171cm、女性の身長は約158cmとなっています。
男女それぞれ平均身長以上の場合は「あなたは平均身長以上ですね」と表示し、平均身長未満の場合は、「あなたは平均身長未満ですね」と表示するスクリプトをつくりましょう。
まずは、男性か女性かを判別し、そのあとそれぞれの平均身長で判別することになります。

ここで、2つの選択肢から一つを選ぶポップアップを表示させるメソッドを紹介します。
それはconfirm関数です。
  変数 = confirm(ダイアログに表示する文字列); 
記述例
var answer = confirm("次に進んでもいいですか");
答えの選択肢は、OKキャンセルです。OKのおきはtrueが、キャンセルのときはfalseが左側の変数に代入されます。

例えば var seibetsu = confirm(“あなたは男性ですか?”);
と記述した場合、男性の場合はOKをクリックします。そうなると、答えとしては男性はtrue, 女性はfalseと判断できます。

それでは、practice3-1.htmlをコピーして作成しましょう。
性別を聞いて、身長を聞いてみて、男性女性それぞれで平均身長以上かどうかを判別するスクリプトを作成しましょう。
var seibetsu; // 性別
var sincho; // 身長

seibetsu = confirm(“あなたは男性ですか?”);
sincho = parseInt(prompt(“あなたの身長を入力してください”));
if(seibetsu == true){    // 男性の場合
  if(sincho >= 171){
   document.write(“あなたは平均身長以上です”);
  } else {
   document.write(“あなたは平均身長未満です”);
  }
} else {            // 女性の場合
  if(sincho >= 158){
   document.write(“あなたは平均身長以上です”);
  } else {
   document.write(“あなたは平均身長未満です”);
  }
}
思った通りの結果が出力できたでしょうか。
ちなみに男性かどうかを判断するところを
if(seibetsu == true){
 ...
} else {
 ...
}
書きましたが、true, falseで判別できるときは
// trueのとき成立
if(seibetsu){
...
}

// falseのとき成立
if(!seibetsu){
...
}

という形で書くことも出来ます。
 
Publish : 5010 bytes - updated 2024-07-17 by 管理人