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

Michelle Torrecampo
Michelle Torrecampo
9,961 Points

Stuck on do/while problem

I keep getting an error saying to declare the variable secret before the loop runs but I thought I did exactly that:

var secret = "sesame"; var password; var correctPassword = false;

do{ var secret = prompt("What is the secret password?"); if (password === secret){ correctPassword = true; }

}while ( secret !== "sesame" ) { secret = prompt("What is the secret password?");
} document.write("You know the secret password. Welcome.");

What am I missing here? I've been stuck on this for weeks!

script.js
var secret = prompt("What is the secret password?");
while ( secret !== "sesame" ) {
  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>

4 Answers

Damien Watson
Damien Watson
27,419 Points

Hi Michelle,

You just need to change it to a 'Do, While' loop. The define secret at the beginning is 'var secret;'. See below:

var secret;
do {
  secret = prompt("What is the secret password?");    
} while ( secret !== "sesame" );
document.write("You know the secret password. Welcome.");
Michelle Torrecampo
Michelle Torrecampo
9,961 Points

This worked for me; thanks again! As usual, I overthought the problem.

Steve Linn
Steve Linn
11,841 Points

I ran your code on my local computer - it works fine. I think this may be a cache issue with the workspaces program - try running it locally using a program like brackets. It works fine.

Damien Watson
Damien Watson
27,419 Points

Hey Steve, as you've said, no issue with the code. The issue is with passing the Challenge, where the 'prompt' should only be called once, not twice.

This passed for me, If you have any questions about the code I'd be happy to explain

var secret;
do {
  secret = prompt("What is the secret password?");
}
while ( secret !== "sesame" )
document.write("You know the secret password. Welcome.");