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 Making Decisions in Your Code with Conditional Statements The Conditional Challenge

Conditional Challenge Solution (problems)

Hey there,

I'm doing the conditional challenge in JavaScript basics, and I created this code, but no matter how many questions I get correct (tried everything 0-5) it always returns the command for 'silver' ranking. (Also, I'm aware I didn't create a rank and perhaps that's where I am going wrong, it seemed redundant at the time, but perhaps that is the main issue...). At any rate, here is my code, I would really appreciate any feedback on what I've written! I am very new and looking to learn as much as I can!

var correctAnswers = '';

var questionOne = prompt("What is the capital of France?").toUpperCase;
var questionTwo = prompt("What is the shortest month of the year?").toUpperCase;
var questionThree = prompt("What animal is 'The King of the Jungle'?").toUpperCase;
var questionFour = prompt("Which direction does the sun rise?").toUpperCase;
var questionFive = prompt("Which planet is 'The Red Planet'?").toUpperCase;

var answerOne = 'PARIS';
var answerTwo = 'FEBRUARY';
var answerThree = 'LION';
var answerFour = 'EAST';
var answerFive = 'MARS';


if (questionOne === answerOne) {
  correctAnswers += 1;
}

if (questionTwo === answerTwo) {
  correctAnswers += 1;
}

if (questionThree === answerThree) {
  correctAnswers += 1;
}

if (questionFour === answerFour) {
  correctAnswers += 1;
}

if (questionFive === answerFive) {
  correctAnswers += 1;
}


if (correctAnswers >=5) {
  document.querySelector('main').innerHTML = "You got all 5 questions right! You are so clever. Here is a gold crown.";
} else if (correctAnswers === 3 || 4) {
  document.querySelector('main').innerHTML = "You got a few questions right. Here is a silver crown.";
} else if (correctAnswers === 1 || 2) {
  document.querySelector('main').innerHTML = "You got a some right. Here is a bronze crown.";
} else {
  document.querySelector('main').innerHTML = "You didn't get any questions correct. No crown for you.";
}

1 Answer

Hi Chelsea,

first of all: great job for a newbie! :-)

Spontaneously I see two issues...

The first thing is that you declare the variable correctAnswers to an empty STRING, but you want it to be a number, right? So you should just assign a 0 to it when you define it.

Second thing is that you used toUpperCase without CALLING it. To call it you have to add () at the end, like this: exampleString.toUpperCase();

If you do the changes, everything should work fine (just tried it out). If not, let me know and I'll help again! :-)

Happy coding and blessings from Berlin, Nils

PS: If my answer helped you, you can upvote it, if it solved your question you can mark it as "best answer", so it is clear to everyone that your question is answered.

Hi Nils!

Thanks so much for your reply! You are absolutely right that I had those two things wrong! What I also discovered is that my two "else if" statements were incorrect! I had:

else if (correctAnswers === 1 || 2)

when I should have had

else if (correctAnswers === 1 || correctAnswers === 2)

With those updates my program was indeed running!

Thanks again for your help!

Happy coding :)