Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript JavaScript Loops, Arrays and Objects Simplify Repetitive Tasks with Loops Create a `do...while` loop

I have no idea why this doesn't work :/

So I'm currently trying to turn this 'while' loop into a 'do while' loop. I tried to put the prompt inside to loop yet it tells me to do just that. sometimes it states that it is not declared as well. I know this is probably an easy fix I'm just stuck on it.

script.js
var secret = prompt("What is the secret password?");
do {
  prompt(secret);
} while ( secret !== "sesame" )
  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>
Kevin Anderson
Kevin Anderson
2,977 Points

You solution does, for the most part work. However, you are prompting the user once outside the loop. Then again immediately after entering the loop. Move your code around a bit:

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

rydavim
rydavim
18,780 Points

If someone below has fully addressed your question, I would also encourage you to vote and mark as best answer. Happy coding!

1 Answer

Hi :} the sturcture of a do.. while loop is like that:

do {

}while(something);

you did one important thing well, u have to declare the secret var outside the loop because if u will create it inside the loop evreytime the loop will run u recreate this variable.

explantion:

var secret;
//entring the loop
do {
//keep asking for a prompt and assign the user reposnse to "secret"
  secret = prompt("What is the secret password?");
//as long as the value in "secret" is not "seasme"
} while ( secret !== "sesame" );
//this statement will run only if secret pass the while check
  document.write("You know the secret password. Welcome.");

hope this helps.

Thank you I appreciate it. Pretty simple fix :)