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

Java Java Basics Perfecting the Prototype Looping until the value passes

Adam Tyler
Adam Tyler
14,865 Points

"Do you understand while loops?" Loop while answer is No.

I don't understand where i have gone wrong.

Example.java
// I have initialized a java.io.Console for you. It is in a variable named console.
String response;
do {
  response = console.readLine("Do you understand do while loops?");
  boolean isNo = response.equals("No");
  }while(isNo);

1 Answer

Steven Parker
Steven Parker
230,324 Points

Just like "response", the variable "isNo" should be declared before the loop. When you declare it inside the loop, it goes out of scope before it can be tested in the "while" expression.

Alternatively, you could eliminate the variable entirely and just put the expression you are setting it with into the "while" condition.

Adam Tyler
Adam Tyler
14,865 Points

Thank you, by declaring it outside I passed the challenge. But my I did, before, try to put the expression in the wile condition but it threw an error. I did it like this:

String response; do { response = console.readLine("Do you understand do while loops?"); }while(response.equals("No");

Is this wrong?

Steven Parker
Steven Parker
230,324 Points

The problem there is that the parentheses are unbalanced. It needs a final closing parenthesis to complete the conditional clause of the "where".