Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Basics (Retired) Making Decisions with Conditional Statements The Conditional Challenge

Luqman Shah
Luqman Shah
3,016 Points

Second Attempt - Please Review My Code

var questions = 5;
var correct = 0


var one = prompt( "Which popular snack has the mixture of chocolate and peanut butter?" );
if ( one.toLowerCase() === "reese's" || one.toLowerCase() === "reeses" ) {
  alert("Correct!");
  correct +=1
} else {
  alert("Wrong!");
  correct -=1
}


var two = prompt( "What's 2 x 2?" );
if ( parseInt(two) === 4 || two.toLowerCase === 'four' ) {
  alert("Correct!");
  correct +=1
} else {
  alert("Wrong!");
  correct -=1
}


var three = prompt("Fill in the blank: Jackie ____ played a cop in A Police Story");
if ( three.toLowerCase() === "chan" ) {
  alert("Correct!");
  correct +=1
} else {
  alert("Wrong!");
  correct -=1
}


var four = prompt("Who is our current president?");
if ( four.toLowerCase() === "donald trump" || four.toLowerCase() === "donald j trump" || four.toLowerCase() === "trump" ) {
  alert("Correct!");
  correct +=1
} else {
  alert("Wrong!");
  correct -=1
}


var five = prompt("html is a programming language, true or false?");
if ( five.toLowerCase() === "false" ) {
  alert("Correct!");
  correct +=1
} else {
  alert("Wrong!");
  correct -=1
}


if ( correct === 5 ) {
  alert("Nice! You've earned a gold crown!");
} else if ( correct <= 4 ) {
  alert("Good! You've earned a silver crown");
} else if ( correct <= 3 ) {
  alert("Good! You've earned a silver crown");
} else if ( correct <= 2 ) {
  alert("Ok! You've earned a bronze crown");
} else if ( correct === 0 ) {
  alert("Sorry, you lose!");
} 

2 Answers

Manjila Nakarmi
Manjila Nakarmi
7,449 Points

all of your correct +=1 or correct-=1 dont end with semi colon.May be that is the issue? even when you declare correct variable the semicolon is missing

Luqman Shah
Luqman Shah
3,016 Points

Ahh thank you for pointing that out, rookie mistake xD

Seth Kroger
Seth Kroger
56,414 Points
if ( correct === 5 ) {
  alert("Nice! You've earned a gold crown!");
} else if ( correct <= 4 ) {
  alert("Good! You've earned a silver crown");
} else if ( correct <= 3 ) {
  alert("Good! You've earned a silver crown");
} else if ( correct <= 2 ) {
  alert("Ok! You've earned a bronze crown");
} else if ( correct === 0 ) {
  alert("Sorry, you lose!");
}

You have correct less than or equal to n in your if statements, which means you'll only get as far as the second, because any score that isn't 5 will be 4 or less. (semi-colons at the end of statements are optional in JavaScript so it's not an error, but it is inconsistent to use them sometimes and omit them in others)

Luqman Shah
Luqman Shah
3,016 Points

So that's a good thing? I see, but it's good practice generally speaking, right?

Luqman Shah
Luqman Shah
3,016 Points

Ok so I watched the solution video. here's how he wrote it:

if (correct === 5) {
  document.write('gold crown');
} else if (correct >= 3) {
  document.write('silver crown');
} else if (correct >= 1) {
  document.write('bronze crown');
} else {
  document.write('no crown');
}

So essentially, if you get 5, the first conditional only runs and everything else is skipped. And if the amount you get correct is greater than or equal to 3, that condition only runs. So >= 3 = 4 or 3, and 5, but because there is already a conditional for 5, the second conditional won't run, only the first one will? If you were to get 5, even though it specifically states anything equal to or greater than 3? Etc..