2016-10-25 25 views
1
var weight = parseInt(prompt("What is your weight?")); 
var height = parseInt(prompt("What is your height?")); 
var bmi; 
bmi= weight/ height; 
var bmiResult = bmi.toFixed(2); 
alert("your weight is" + bmiResult); 

if (bmiResult>=30) {  
    alert("obese"); 
} 
else if (bmiResult>25 || bmi<30) {  
    alert('overweight'); 
} 
else if (bmiResult>18.5 || bmi<=25) {  
    alert('normal'); 
} 
else if (bmiResult>=16 || <=18.5) {  
    alert('underweight'); 
} 
else (bmiResult<16) {  
    alert('very underweight'); 
} 

このコードは機能していないと思われます。理由はわかりません... if/elseステートメントをユーザ入力に基づいて動作させようとしています/ 高さ。誰もそれがなぜ機能しないのか説明できますか?コードが機能しない

+0

ようこそスタックオーバーフロー!問題の声明が単に「動作しない」場合は、ソリューションを提供することは困難です。実際の結果とどのように違うのか、そしてどのようなことが起こるのかをより完全に説明するために質問を編集してください。何が良い説明になるかについてのヒントについては、[ask]を参照してください。 –

+0

あなたはbmiとbmiResultのどちらかを選択する必要があります。 – Supersharp

答えて

1

あなたはここでオペレータ<=

変数を入れるのを忘れ:

bmi= weight/ height; 

var bmiResult = bmi.toFixed(2); 

alert("your weight is" + bmiResult); 

if (bmiResult>=30) {  
alert("obese"); 
} 

else if (bmiResult>25 || bmi<30) 
{  alert('overweight'); 
} 

else if (bmiResult>18.5 || bmi<=25) 
{  alert('normal'); 
} 

else if (bmiResult>=16 || bmiResult<=18.5) // <== their it is 
{  alert('underweight'); 
} 

else (bmiResult<16) 
{  alert('very underweight'); 
} 
+0

フィードバックありがとう!私はそれを修正し、わずかに更新しました –

+0

var weight = parseInt(プロンプト( "あなたの体重は?")); var height = parseInt(プロンプト( "あなたの身長は?")); var bmi; bmi =重量/高さ; var bmiResult = bmi.toFixed(2); アラート(「あなたの体重は+ bmiResult」です。 if(bmiResult> = 30){ alert( "肥満"); (bmiResult> 25 && bmiResult <30){ アラート( '過体重') } else if(bmiResult> 18.5 && bmiResult <= 25){ alert( 'normal'); } else if(bmiResult> = 16 && bmiResult <= 18.5){ アラート( 'underweight'); } else(bmiResult <16){ アラート( '非常に低体重'); } –

+0

しかしまだそれは働いていないようです.... –

1

else if (bmiResult>=16 || <=18.5) { alert('underweight'); }

エラーで|| < = 18.5あなたは意味しましたか? bmiResult < = 18.5

+0

ありがとうございます! –

関連する問題