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,857 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
Treehouse Moderator 16,911 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

<noob />
<noob />
16,316 Points

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 :)