2017-09-30 15 views
0

こんにちは申し訳ありませんが、これは重複した質問ですが、誰かが私のコードで私を助けてくれるのかどうか疑問に思っていました。私は何が不足しているのか分かりません。年齢とチケット価格の結果を返します。javascript条件演算子の問題

歳未満の5エントリは5歳と12の間 無料です(包括的)子供のチケットが12より$ 5.00 古いコスト大人のチケットは$ 9.00

がかかりますここに私のコードです:

function myFunction() { 
 
    var age; 
 
    var older; 
 
    var young; 
 
    
 
    age = document.getElementById("age").value; 
 
    
 
    
 
    older = (age >= 13) ? "$9":"$5"; 
 
    
 
    document.getElementById("demo").innerHTML = older + " movie"; 
 
}
<body> 
 

 
<p>Input your age and click the button:</p> 
 

 
<input id="age" /> 
 

 
<button onclick="myFunction()">Try it</button> 
 

 
<p id="demo"></p> 
 
<p> Under age 5 entry is free 
 

 
Between ages 5 and 12 (inclusive) a childís ticket costs $5.00 
 

 
Older than 12 an adult ticket costs $9.00 </p> 
 
<body>

+1

どうしたのですか? – stybl

+1

そして、発行は何ですか? – Lixus

+0

@stybl "free"オプションが評価されない – guest271314

答えて

3

条件演算子の先頭にage < 5のチェックを追加することができます

function myFunction() { 
 
    var age; 
 
    var older; 
 
    var young; 
 
    
 
    age = document.getElementById("age").value;  
 
    
 
    older = age < 5 ? "free" : (age >= 13) ? "$9" : "$5"; 
 
    
 
    document.getElementById("demo").innerHTML = older + " movie"; 
 
}
<body> 
 

 
<p>Input your age and click the button:</p> 
 

 
<input id="age" /> 
 

 
<button onclick="myFunction()">Try it</button> 
 

 
<p id="demo"></p> 
 
<p> Under age 5 entry is free 
 

 
Between ages 5 and 12 (inclusive) a childís ticket costs $5.00 
 

 
Older than 12 an adult ticket costs $9.00 </p> 
 
<body>

+0

複数のテストと条件演算子を使用すると、各条件と子条件付き演算に '()'を追加します: 'older =(age <5)? "無料":((年齢= 13)? "$ 9": "$ 5") – Arthur

0

あなたは非常に簡単にIFSを連鎖によって、あなたが望むものを達成することができます:あなたは本当に、は本当には速記を使用したい場合は、

function myFunction() { 
    var age = document.getElementById("age").value; 
    var price; 

    if (age >= 13) { 
     price = "$9"; 
    } 
    else if (age >= 5) { 
     price = "$5"; 
    } 
    else { 
     price = "Free"; 
    } 

    document.getElementById("demo").innerHTML = price + " movie"; 
} 

または:

function myFunction() { 
    var age = document.getElementById("age").value; 
    var price = (age >= 13) ? "$9" : ((age < 5) ? "Free" : "$5"); 

    document.getElementById("demo").innerHTML = price + " movie"; 
} 

カッコはオプションです。私は、何が起こっているのかを明確にするためにそれらを含めました。

+0

最初の例の無料の結果で5ドルの価格を変更する必要があります – Arthur

+1

おっと。 – stybl