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

Moises Miguel
Moises Miguel
5,028 Points

Below is the code for the last code challenge. This would work better as a do...while loop. Re-write the code using a do

I need help figuring this one out

script.js
var secret = prompt("What is the secret password?");
do {
  if (secret === "sesame") {
    document.write("You know the secret password. Welcome");
  }
} while (secret)
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Loops</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

1 Answer

Colin Bell
Colin Bell
29,679 Points
  • You need to declare the secret variable in the global scope, but you don't need to set it to the prompt until the do section.
  • You want the document.write() after the do/while loop has completed.
  • You need to have an expression for your while to test.
var secret; // Declare this here so it's accessible in the global scope

do {
  secret = prompt("What is the secret password?"); // Keep doing this
}
while ( secret !== "sesame" ); // While secret does not equal "sesame"

// When secret does equal sesame, exit the loop and write to the document
document.write("You know the secret password. Welcome.");