0
var num1 = prompt("Enter first number: ", "number");
var num2 = prompt("Enter second number: ", "number");

if (num1 > num2) {

    document.write("<p>" + num1 + " is greater than " + num2 + "</p>");
} else {

    document.write("<p>" + num2 + " is greater than " + num1 + "</p>");
}

その時点でこのコードを実行すると、毎回else部分が実行されるので、解決策は何ですか? よろしくお願いします。

4

6 に答える 6

2

Javascript には、任意の変数を比較するときの true/false のファンキーな定義があります。プロンプトを表示している 2 つのパラメーターの入力が、期待どおりの数値にキャストされていることを 100% 確認する必要があります。

var num1 = parseInt(prompt("Enter first number: ", "number"));
var num2 = parseInt(prompt("Enter second number: ", "number"));

演算子を使用すること+は素晴らしい省略形ですが、上記の私の簡単な答えは別として、おそらく、それらがゴミを与えていないことを確認するためにいくつかのチェックを追加したいと思うでしょう.

また、必ず Ian の回答を確認してください。これには、+演算子と強制に使用する方法についての優れた説明が含まれています。

于 2013-05-21T23:03:37.517 に答える
1

比較する前に、入力 (文字列) を数値 (整数/浮動小数点数) に解析する必要があります。

次のように parseInt または parseFloat を使用します: (それぞれ)

var num1 = parseInt(prompt("Enter first number: ", "number"));

var num2 = parseFloat(prompt("Enter second number: ", "number"));

于 2013-05-21T23:03:01.597 に答える
0

num1あなたの場合、変数num2はSTRINGです。比較する前に、INT 型に変換する必要があります。

var num1 = parseInt(prompt("Enter first number: ", "number"));

var num2 = parseInt(prompt("Enter second number: ", "number"));

将来のヒント: typeof() で変数の型を取得できます

于 2013-05-21T23:12:07.227 に答える
0

prompt数値ではなく文字列を返します。比較する前に、prompt の結果を数値に変換する必要があります。

于 2013-05-21T23:05:02.137 に答える