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 Super Conditional Challenge

conditional statements

Something's wrong with this script. The value in the variable money is only 9. But if you preview this script you'll see the "Time to go to the theater" message. Fix this script so that it correctly tests the money and today variables and prints out the proper alert message: "It's Friday, but I don't have enough money to go out"

how do I do this?

thank you

script.js
var money = 9;
var today = 'Friday'

if ( money >= 10 || today === 'Friday' ) {
  alert("Time to go to the theater");    
} else if ( money >= 50 || today === 'Friday' ) {
  alert("Time for a movie and dinner");    
} else if ( money > 10 || today === 'Friday' ) {
  alert("Time for a movie");   
} else if ( today !== 'Friday' ) {
  alert("It's Friday, but I don't have enough money to go out");   
} else {
  alert("This isn't Friday. I need to stay home.");
}
index.html
<!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>JavaScript Basics</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

1 Answer

andren
andren
28,558 Points

Two changes need to be made the first is to change all of the || operators to && like this:

var money = 9;
var today = 'Friday'

if ( money >= 10 && today === 'Friday' ) {
  alert("Time to go to the theater");    
} else if ( money >= 50 && today === 'Friday' ) {
  alert("Time for a movie and dinner");    
} else if ( money > 10 && today === 'Friday' ) {
  alert("Time for a movie");   
} else if ( today !== 'Friday' ) {
  alert("It's Friday, but I don't have enough money to go out");   
} else {
  alert("This isn't Friday. I need to stay home.");
}

|| is the or operator, when you use it in an if statement you are saying that you want the statement to run if either of the things being tested are true, so "money >= 10 || today === 'Friday' " is actually saying if money >= 10 or today === 'Friday'.

&& is the AND operator, when you use it in an if statement you are saying that you want the statement to run only if both of the things being tested are true, so "money >= 10 && today === 'Friday' " is actually saying if money >= 10 and today === 'Friday'.

The second thing you need to change is the condition of the last else if statement from !== to ===, !== is the not equal to operator, it is used to test if something is not equal to something else, so "today !== 'Friday'" is actually saying if today is not Friday.

=== is the strict equality operator, it tests to see if something is of the same value and type and something else so "today === 'Friday'" is actually saying if today is Friday.

Here is the fixed code:

var money = 9;
var today = 'Friday'

if ( money >= 10 && today === 'Friday' ) {
  alert("Time to go to the theater");    
} else if ( money >= 50 && today === 'Friday' ) {
  alert("Time for a movie and dinner");    
} else if ( money > 10 && today === 'Friday' ) {
  alert("Time for a movie");   
} else if ( today === 'Friday' ) {
  alert("It's Friday, but I don't have enough money to go out");   
} else {
  alert("This isn't Friday. I need to stay home.");
}