• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:elseを使わないで複合条件をする方法)

elseを使わないで複合条件をする方法

このQ&Aのポイント
  • JavaScriptのコードを改造して、elseを使わないで複合条件をする方法を教えてください。
  • 改造したコードでは、BMI指数を計算し、BMI指数に基づいてメッセージを表示しています。
  • 改造したコードでは、if文の条件式を連結させることで、複合条件を実現しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

<Script language="JavaScript"> var Range = new Array(20,24,26.5); var Msgs = new Array("痩せ型","普通","太り気味"); var tall,weight,BMI; tall = 176; weight = 56; BMI = weight / tall / tall * 10000; document.write("貴方のBMI指数は"+BMI+"です。<br>"); var msg = "貴方は肥満と診断されました。<br>"; for(i=0;i<Range.length;i++){ if(BMI < Range[i]){ msg = "貴方は" + Msgs[i] + "です。<br>"; break; } } document.write(msg); document.write("あなたの理想体重は"+22*tall*tall/10000+"です。<br>") </script>

imarusu
質問者

お礼

うまく起動しました! ありがとうございます!

その他の回答 (5)

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.5

↓が間違っていたので直しました。未実施は変わりません。 <Script language="JavaScript"> var tall,weight,BMI; tall = 176; weight = 56; BMI = weight / tall / tall * 10000; document.write("貴方のBMI指数は"+BMI+"です。<br>"); document.write(fncbodytype(BMI)); document.write("あなたの理想体重は"+22*tall*tall/10000+"です。<br>") function fncbodytype(bmi){ if(bmi < 20) retuen "貴方は痩せ型です。<br>"; if(bmi < 24) return "貴方は普通です。<br>"; if(bmi < 26.5) return "貴方は太り気味です。<br>"; if(bmi >= 26.5) return "貴方は肥満と診断されました。<br>"; } </script>

imarusu
質問者

お礼

またまたすいません; 何かページエラーがでました; でもありがとうございます!

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.4

コードかいちゃいました。 ...が未実施です。 <Script language="JavaScript"> var tall,weight,BMI; tall = 176; weight = 56; BMI = weight / tall / tall * 10000; document.write("貴方のBMI指数は"+BMI+"です。<br>"); document.write(fncbodytype(BMI)); document.write("あなたの理想体重は"+22*tall*tall/10000+"です。<br>") function fncbodytype(bmi){ if(bmi < 20) retuen "貴方は痩せ型です。<br>"; if(BMI < 24) return "貴方は普通です。<br>"; if(BMI < 26.5) return "貴方は太り気味です。<br>"; if(BMI >= 26.5) return "貴方は肥満と診断されました。<br>"; } </script>

imarusu
質問者

お礼

やってみたところうまく起動されませんでした; でもありがとうございます!

  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.3

<Script language="JavaScript"> var tall,weight,BMI; tall = 176; weight = 56; BMI = weight / tall / tall * 10000; document.write("貴方のBMI指数は"+BMI+"です。<br>"); var a; a=BMI< 20?1:BMI< 24?2:BMI< 26.5?3:4; switch(a){ case 1: alert("貴方は痩せ型です。<br>");break; case 2: alert("貴方は普通です。<br>");break; case 3: alert("貴方は太り気味です。<br>");break; case 4: alert("貴方は肥満と診断されました。<br>");break; } document.write("あなたの理想体重は"+22*tall*tall/10000+"です。<br>") </script> これくらいかしら?

imarusu
質問者

お礼

このやり方でやって見たらできました! ありがとうございます!

noname#22222
noname#22222
回答No.2

次は、某HPからの引用です。 ただし、No.1さんの回答通り、ケースを1、2、3、0等に変換してSwitch文を使うという工夫がいるでしょう。 「switch文は、ある式が複数の定数である整数値の一つと一致しているかどうかをテストし、それに応じて分岐する多分岐判断機構である。    switch (式) {     case 定数式: 文     case 定数式: 文     default: 文    } 各 case には一つ以上の数値を持つ定数あるいは定数式による名札を付ける。default という名札の付いた case は、他の case のどれもが満足されなかったときに実行される。default はなくてもよい。それがなくて、しかもどの case もマッチしない場合には、何も行われない。case と default節の順序は任意である。」(「プログラミング言語C」69~70頁)  この switch文は、「ECMA 262 規格仕様」には含まれていませんが、JavaScript の基本仕様として定着していますので触れておきます。  JavaScript で、前述の「文字の出現回数を数える 1」を、switch文を使って書くと次のようです。     function charcount(text) {      var i, l;      var n = new Array(0, 0, 0);      l = text.length;      for (i=0; i<l; i++) {       switch(text.charAt(i)) {        case "0": case "1": case "2": case "3": case "4":        case "5": case "6": case "7": case "8": case "9":         ++n[0];         break;        case " ": case " ":         ++n[1];         break;        default:         ++n[2];         break;       }      }      digits.value=n[0];      space.value=n[1];      other.value=n[2];     }

imarusu
質問者

お礼

こんなに詳しく書いて頂きありがとうございます!

  • matui2000
  • ベストアンサー率19% (30/155)
回答No.1

if文の始まるところを以下に置き換えてみてください。 と思ったのですが不等号の場合なのでSwitchは使えませんね・・・。?を使うことぐらいしか思いつきません。

参考URL:
http://www.hellohiro.com/basic/switch.htm
imarusu
質問者

お礼

URLまで載せて頂きありがとうございます!