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 Loops, Arrays and Objects Simplify Repetitive Tasks with Loops Create a `do...while` loop

syntax error

I get a syntax error as i try to rewrite this code with a "do while " loop. Any idea?

script.js
var secret = prompt("What is the secret password?");
do{ secret !== "sesame" } while(
  secret = prompt("What is the secret password?")    

document.write("You know the secret password. Welcome.");
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Loops</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

2 Answers

Justin Cantley
Justin Cantley
18,068 Points

The issue is that you have two pieces of code in your script.js file in the wrong spots. What you have in the brackets after 'do' and in the parentheses after 'while' need to be swapped.
Also, you don't need to run the prompt during your initial variable declaration for 'var secret'. You can just run the prompt in the 'do' statement.

Here's how the code should look:

var secret;
do { 
    secret = prompt("What is the secret password?") 
} while(secret !== "sesame")      

document.write("You know the secret password. Welcome.");
Steven Parker
Steven Parker
229,732 Points

In a "do...while", the the "do" precedes the loop body, and the "while" comes after the loop body. Also, the test condition comes after the "while".

And as part of the changes, you can eliminate the call to "prompt" that happens before the loop. Just declare "secret" but don't assign it until inside the loop.