2017-05-19 12 views
1
var johnHeight = prompt('Enter the height'); 

var johnAge =prompt('Enter the age'); 

var ranaHeight = prompt('Enter the height'); 

var ranaAge =prompt('Enter the age'); 

var johnScore = johnHeight + 5 * johnAge; 

var win = document.getElementById('winner'); 

if (johnScore > ranaScore) { 

     win.innerHTML = 'John is the winner with ' + johnScore + ' points'; 

} 

else if (johnScore < ranaScore) { 

    win.innerHTML = 'Rana is the winner with ' + ranaScore + ' points'; 
} 

else if (johnScore == ranaScore) { 

    win.innerHTML = 'It\'s a draw'; 
} 

コードを実行しようとすると、すべて正常に機能しますが、式つまりJohnScoreまたはranaScoreは正しい値を計算しません。 プロンプトを削除してそれらの変数にあらかじめ定義された値を与えると、正常に動作します。 誰かが解決できますか。数式に何が問題なのかわからない

+3

'ranaScore'のように見えません - スコアは決して計算されませんでした。 – alexanderbird

答えて

0

あなたが彼の高さに5を追加し、それをする必要があることを意味している年齢を掛けることを意味場合はranaScoreのため、およびjohnScore変数に設定する変数を持っていない:

var johnScore = (johnHeight + 5) * johnAge; 

を場合それはあなたが試してみる必要があるものではありません:

var johnScore = johnHeight + (5 * johnAge); 
0

プロンプトからの値は文字列として来ています。だから正しい計算をするには、それを数値に変換する必要があります。プロンプトの前に+に注意してください。 また、ranaScoreを定義する必要があります。だから、

johnHeightが "10" であるとjohnAgeは "5" である、のは、これではJavaScriptによって評価されていた方法を見てみましょう場合:あなたの変数ranaScoreが持っているよう

var johnScore = johnHeight + 5 * johnAge; 

johnScore = "10" + 5* "5" which is "10" + "25" which is "1025". 

var johnHeight = +prompt('Enter the height'); 
 

 
var johnAge = +prompt('Enter the age'); 
 

 
var ranaHeight = +prompt('Enter the height'); 
 

 
var ranaAge = +prompt('Enter the age'); 
 

 
var johnScore = johnHeight + 5 * johnAge; 
 
var ranaScore = ranaHeight + 5 * ranaAge; 
 
var win = document.getElementById('winner'); 
 

 
if (johnScore > ranaScore) { 
 

 
    win.innerHTML = 'John is the winner with ' + johnScore + ' points'; 
 

 
} else if (johnScore < ranaScore) { 
 

 
    win.innerHTML = 'Rana is the winner with ' + ranaScore + ' points'; 
 
} else if (johnScore == ranaScore) { 
 

 
    win.innerHTML = 'It\'s a draw'; 
 
}
<div id="winner"></div>

+0

ありがとうございました。 – sid

+0

@siddharthagantediそれが助けて以来、解決策を受け入れてください! –

0

が見えます定義されていないので、この行が必要です。

  var ranaScore = rannaHeight + 5 * rannaAge; 

現実のシナリオでは、あなたはあなたにJSの機能を構築する必要がありますが、代わりに例えば静的変数を使用しての引数は以下の非常に基本的な例を参照してください受けます。

  function comparevalues(arg1,arg2){ 
       if (arg1 > arg2) { 
        win.innerHTML = arg1 + 'is greater than ' + arg2; //arg 1 wins 
       } 
       else if (arg1 < arg2) { 
        win.innerHTML = arg2 + 'is greater ' + arg1; //arg 2 wins 
       } 
       else { 
        win.innerHTML = arg2 + 'is equal to ' + arg1; //draw 
       } 
      } 
      comparevalues(4,5) 
0

常にプロンプ​​トは文字列型を返し、ParseIntメソッドを使用して数値に変換します。 var johnHeight = parseInt(プロンプト( '高さを入力'));

関連する問題