2017-09-12 15 views
1
var question=prompt("What is your age?"); 

if (question == 14) { 
    alert("Coupon 1") 
} 
if (question == 21) { 
    alert("Coupon 2") 
} 
if (question == 30) { 
    alert("Coupon 3") 
} 
if (question == 50){ 
    alert ("Coupon 4") 
} 
else { 
    alert("No Coupon") 
} 

私が14歳になると、「クーポン1」と表示され、その後に「クーポンなし」と表示されます。最後の50歳を除いて、if文ごとにこれを行います。50歳になると、私はクーポン4と "クーポンなし"を得ます。 なぜこれがこれを行うのか分かりません。else文が正しく動作しない

+0

使用 '他if'最初' if' – C2486

+0

グレート最初の質問後、約!よくやった – Evert

答えて

1

ifの文は接続されておらず、それぞれが別のものと独立して実行されています。つまり、以前のものがtrueを返しても、すべてのケースが検査されています。そして他の多くの言語 - -

var question = prompt("What is your age?"); 
     //check if 14 
     if (question == 14) { 
      alert("Coupon 1") 
     } 
     //check if 21 
     else if (question == 21) { 
      alert("Coupon 2") 
     } 
     //check if 30 
     else if (question == 30) { 
      alert("Coupon 3") 
     } 
     //check if 50 
     else if (question == 50){ 
      alert ("Coupon 4") 
     } 
     //if none of the above, no coupon 
     else { 
      alert("No Coupon"); 
     } 

Javascriptを持っている:

var question = prompt("What is your age?"); 
    //check if 14 
    if (question == 14) { 
     alert("Coupon 1") 
    } 
    //check if 21 
    if (question == 21) { 
     alert("Coupon 2") 
    } 
    //check if 30 
    if (question == 30) { 
     alert("Coupon 3") 
    } 
    //check if 50, else no coupon 
    if (question == 50){ 
     alert ("Coupon 4") 
    } 
    else { 
     alert("No Coupon") 
    } 

をロジックを意味if elseif文の文字列を使用するように変更してみてください一つの連続流れている:あなたのコードでは、より多くの本などがありますSwitch Statementと呼ばれるこの種のif-elseif-elseチェーンを特に処理する組み込みの構文です。 else文が接続されている場合にのみ

switch (prompt("What is your age?")) { 
    case 14: 
     alert("Coupon 1"); 
     break; 
    case 21: 
     alert("Coupon 2"); 
     break; 
    case 30: 
     alert("Coupon 3"); 
     break; 
    case 50: 
     alert("Coupon 4"); 
     break; 
    default: 
     alert("No Coupon"); 
     break; 
} 
+0

'default'の場合は' break'を必要としません – Phil

+0

何かを傷つけず、いくつかの利点があります。https://softwareengineering.stackexchange.com/questions/201777/break-on -default-case-in-switch – Bricky

1

最後の、そして最初の3つは、最初の3例最初の1のためにそうするたびに三つの独立したif文です:あなたは、このようなスイッチを使用してコードを書き換えることができます条件が真で最後のelse文も真です。

var question=prompt("What is your age?"); 

if (question == 14) { 
    alert("Coupon 1") 
} 
else if (question == 21) { 
    alert("Coupon 2") 
} 
else if (question == 30) { 
    alert("Coupon 3") 
} 
else if (question == 50){ 
    alert ("Coupon 4") 
} 
else { 
    alert("No Coupon") 
} 

読み取りのif-elseのif-else文here

関連する問題