2017-01-29 9 views

答えて

4
var first = prompt("First number"); 
var second = prompt("Second number"); 
parseInt(first); 
parseInt(second); 
var islem = prompt("Is it +/-/* or /?"); 
if (islem == "+") { 
    document.write(first + second); 
} 
else if (islem == "-") { 
    document.write(first - second); 
} 
else if (islem == "*") { 
    document.write(first * second); 
} 
else { 
    document.write(first/second); 
} 

のparseInt()関数は、文字列引数を解析して整数値を返します。あなたの変数にparsed値を割り当てる必要があり

は、次のように:

first=parseInt(first); 
second=parseInt(second); 

それとも単に、

document.write(parseInt(first)+parseInt(second)); 

は参照hereを参照してください。

var first = prompt("First number"); 
 
var second = prompt("Second number"); 
 
parseInt(first); 
 
parseInt(second); 
 
var islem = prompt("Is it +/-/* or /?"); 
 
if (islem == "+") { 
 
    document.write(parseInt(first)+parseInt(second)); 
 
} 
 
else if (islem == "-") { 
 
    document.write(first-second); 
 
} 
 
else if (islem == "*") { 
 
    document.write(first*second); 
 
} 
 
else { 
 
    document.write(first/second); 
 
}

+0

'prompt'結果ごとに' number'に 'convert'しなければならないので' string'です。 –

+1

しかし、OPはすでに 'parseInt()'を呼び出していますので、別の呼び出しを追加するのではなく、最初に結果を取得するだけです。 –

+0

@ScottMarcus、申し訳ありません。私の間違い。 –

4

あなたがparseInt()を使用し、あなたが今後その番号を使用できるように返された値をキャプチャする必要があります。今すぐ、parseInt()を呼び出していますが、返された値で何もしないので、すぐに失われます。

parseInt()にオプションの2番目のパラメータを使用することをお勧めします。これは、作業している番号の基数を設定する基数値です。通常、ベース10の数字を扱う場合は、10になります。あなたが作業している文字列が0で始まり、基数を指定しないと、演算はあなたが8進値で作業しているとみなし、文字列が0xで始まると仮定すると、これは本当に重要です。 16進数(16進数)の値で作業しているとします。

詳細については、parseInt()を参照してください。

コードは次のようになります。

var first = prompt("First number"); 
var second = prompt("Second number"); 
first = parseInt(first, 10); 
second = parseInt(second, 10); 
4

あなたはどこにでもparseInt結果を格納し、代わりに文字列に対する操作を実行されていません。 +も文字列連結操作であるため、という結果が得られます。ライン3-4にを変更してみてください:

var first = prompt("First number"); 
var second = prompt("Second number"); 
var firstParsedInteger = parseInt(first); 
var secondParsedInteger = parseInt(second); 
var islem = prompt("Is it +/-/* or /?"); 
if (islem == "+") { 
    document.write(firstParsedInteger + secondParsedInteger); 
} 
else if (islem == "-") { 
    document.write(first-second); 
} 
else if (islem == "*") { 
    document.write(first*second); 
} 
else { 
    document.write(first/second); 
} 

注:ここでは

first = parseInt(first, 10); //don't forget the base! 
second = parseInt(second, 10); 
//TBD: add some error handling code to check values 
2

は右のプログラムであるあなたは、解析された値を使用したことはありません。 javascriptでは、数値にvarを使用し、 '+'演算子を使用している場合。これらの数字は数値ではなく文字列として扱われます。 javascriptでvarと+を使って再生するときは、整数を解析することを忘れないでください。

2

これらの回答はすべて素晴らしいです!あなたはできるだけ多くの不要な変数

2)の代わりにもし/他のswitch文を使用することを宣言していないように私は、さらに一歩と

1)すぐにプロンプ​​トにparseInt()に電話を行くと思います!他のケースを追加したり、累乗などを簡単に追加できますしかし、これはスタイルの選択肢の多くです:)

parseInt()の代わりにparseFloat()を使用して10進数の入力を処理することもできます。

var first = parseInt(prompt("First number")); 
var second = parseInt(prompt("Second number")); 
var islem = prompt("Is it +/-/* or /?"); 
switch (islem) { 
    case "+": 
     document.write(first+second); 
     break; 
    case "-": 
     document.write(first-second); 
     break; 
    case "*": 
     document.write(first*second); 
     break; 
    case "/": 
     document.write(first/second); 
     break; 
    default: 
     document.write("Excuse me? Give me an operator, please!"); 
}; 
関連する問題