2017-08-03 9 views
1

コードの大部分が機能しているようです。問題は、最後のスコアメッセージを最終的なelse節として計算するためにif文で設定したエラーメッセージを返すことです。アプリケーションの実行中にいつでも変数に実際に格納されている値を確認する方法がわかりません。私のJavaScriptクイズのアプリケーションのスコアは正しく格納されていません。構文の何が間違っていますか?

var score = 0; // to store the correct answers 

//List of answers 
var answerOne = 'BLUE'; 
var answerTwo = 'GREEN'; 
var answerThree = 'PRINCIPLE'; 
var answerFour = 'MONEY'; 
var answerFive = 'WILLY WONKA'; 

// The questions and their verification protocol 

var questionOne = prompt('What is the color of the sky?'); 
//Conditional statement matching user input to correct answer. 

    if (questionOne.toUpperCase === answerOne) { 
    score+= 1; 
    } 


var questionTwo = prompt('What is the color of grass?'); 
//Conditional statement matching user input to correct answer. 

    if (questionTwo.toUpperCase === answerTwo) { 
     score+= 1; 
    } 

var questionThree = prompt('What is the most powerful force?'); 
//Conditional statement matching user input to correct answer. 

    if (questionThree.toUpperCase === answerThree) { 
    score+= 1; 
    } 

var questionFour = prompt('What makes the world go round?'); 
//Conditional statement matching user input to correct answer. 

if (questionFour.toUpperCase === answerFour) { 
    score+= 1; 
    } 

var questionFive = prompt('Who can take a sunrise and sprinkle it with dew?'); 
//Conditional statement matching user input to correct answer. 

    if (questionFive.toUpperCase === answerFive) { 
    score+= 1; 
    } 

//Final score-providing message to user 

    if (score = 0) { 
    alert('Wow, you suck. No crown for you! You had ' + score + 'correct answers!'); 
    } else if (score <= 2 && score > 1) { 
     alert('You were not the worst, but certainly not the best. You earned a bronze crown with ' + score + ' correct answers!'); 
    } else if (score <= 4 && score > 3) { 
     alert('You did a pretty good job! You earned a silver crown with ' + score + ' correct answers!'); 
    } else if (score === 5) { 
     alert('Congratulations! You have successfully answered all questions correctly! You have earned a gold crown with ' + score + ' correct answers!'); 
    } else { 
     alert('ERROR!') 
    } 
+3

ここでは、 'if(score = 0)'を修正することができます。 'if(score === 0)'(私は常に厳密な等式を使います)でなければなりません。あなたのコードでは、スコアを0に設定しています)。 – Andy

+2

toUpperCaseはメソッドであるため、questionOne.toUpperCase()など( –

+0

)@RobWelanと答えてください。 – zfrisch

答えて

1

1)toUpperCaseは、文字列関数であり、同じように使用する必要があります:あなたはscore0に等しいことを確認していない、scoreから0を割り当てているあなたのif/then声明で

if (questionFour.toUpperCase() === answerFour) {... 

2)。ことを行うには:

if (score === 0) { 

3)最後に、あなたのif/then条件の範囲を監視する必要があります。

scoreが1である場合には、このチェックしません:

(score <= 2 && score > 1) 

スコアが1である場合には、このチェックん:

(score >= 1 && score <= 2) 

ここcorrected codeです。

0

==ではなく代入演算子を使用しました。

if(score==0) 

上記の値はconsole.log(score)を加算して表示されます。

+2

...これは実際に質問に答えません – zfrisch

1

toUpperCaseのような、この例ごとに書き込まなければならない、方法であり、このコードで多くの問題がある

questionOne.toUpperCase() 
関連する問題