レッスンに戻る

足し算を修正する

重要性: 5

ユーザに2つの数字を訪ね、その合計を表示するコードがあります。

これは正しく機能していません。以下の例の出力は 12 です(デフォルトのプロンプトの値の場合)。

なぜでしょうか?修正してください。結果は 3 になるべきです。

let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);

alert(a + b); // 12

理由はプロンプトがユーザ入力を文字列として返すからです。

なので、変数はそれぞれ値 "1""2" になります。

let a = "1"; // prompt("First number?", 1);
let b = "2"; // prompt("Second number?", 2);

alert(a + b); // 12

すべきことは、+ の前に、文字列から数値へ変換することです。例えば、Number() を使用したり、それらの前に + をつけます。

例えば、。prompt の直前:

let a = +prompt("First number?", 1);
let b = +prompt("Second number?", 2);

alert(a + b); // 3

あるいは alert:

let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);

alert(+a + +b); // 3

最新のコードでは、単項と二項の + 両方を使用しています。面白いですね。