このプログラムでは、0
または121
以下の任意の数値の入力、または文字列はとして返されます。ただし、文字列を入力すると、FULL_PRICE
文字列が返されます。文字列のfalseを返すブール値 - 真でなければならない
const LOW_AGE = 5,
HIGH_AGE = 69,
MID_AGE = 17,
MAX_AGE = 120,
FULL_PRICE = "You must pay full price.",
HALF_PRICE = "You must pay half price.",
FREE = "You may travel for free";
function main() {
var age, inputError, cost;
age = Number(prompt("Enter Your Age:"));
if (age < 0 || age > MAX_AGE || age == NaN)
inputError = true;
else
inputError = false;
if (age < LOW_AGE || age > HIGH_AGE)
cost = FREE;
else if (age < MID_AGE)
cost = HALF_PRICE;
else
cost = FULL_PRICE;
if (inputError)
alert("Input Error.");
else
alert(String(cost));
}
あなたは私がage == NaN
を使用してfalse
として文字列をトリガすることを試みている見ることができるように。
age == String
も入力しようとしました。
確かに、文字列にはtrue
と返されますか?
_ "確かに文字列の場合はtrueに戻りますか?" 'age == String'ですか? 'age'は数値、' String'は関数です。どのように彼らは等しいことができますか?文字列はまったくありません。 'age == NaN'を使って文字列を' false'としてトリガするのはどういう意味ですか?あなたはNaNに等しいものは何もないことを知っていますか? – Xufox
あなたは次のようなことをしなければならないと思います: '{var input = Number(prompt(" Enter String "));} while(!input.isInteger());'それで、文字列が正しく変換されるまでintに。あなたがそれをしないと、あなたはプロンプトの後に言うことができます: 'if(!input.isInteger()){alert(" Error。 ");戻る; } '。なぜ計算が終了するまで待つのですか? – Fallenreaper
以下のいずれかの回答が問題を解決する場合は、それを受け入れる必要があります(該当する回答の横にあるチェックマークをクリックしてください)。それは2つのことをします。あなたの問題があなたの満足のために解決されたことを誰にでも知らせることができます。 [詳細はこちら](http://meta.stackexchange.com/a/5235)を参照してください。 – VTodorov