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 trialKasey Domer
787 PointsI'm really stumped by this do while loop.
I'm getting syntax errors with this code (it's in a code challenge), and I'm not sure why. HALP! This is my first day learning Java, so sorry if it's really obvious. Lol
// 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? ");
if (response.equalsIgnoreCase("No")) {
console.printf("Please try again.");
} while (response.equalsIgnoreCase("No"));
}
2 Answers
Steve Hunter
57,712 PointsHi Kasey,
You've got everything you need in your answer, and a little bit more too!! As Jeremiah has said, you need to move some of your curly braces about but I think we can simplify the code a bit too. Take Jeremiah's simple example of a do-while loop:
do {
// this code
} while (this is true);
What are the "this code" and "this is true" parts for our challenge? Well, the "this is true" bit is the user answering "No" - we want to loop while they enter the answer "No". So what do we want to do inside each loop? We want to prompt them for their response, again.
So, swapping out the placeholders above and adding your code for those parts (and declaring the response
string) gives us:
String response;
do {
response = console.readLine("Do you understand while loops? ");
} while(response.equals("No"));
I hope that makes sense and simplifies your answer to the challenge.
Steve.
Jeremiah Montano
7,221 PointsIn this case, it is the syntax that is causing the error. The WHILE statement should be outside of the DO loop.
DO {
//something
} WHILE (THISISTRUE);
I hope this helps.
Kasey Domer
787 PointsMy "while" statement is outside the do loop, though, isn't it?
Jeremiah Montano
7,221 PointsNo your while statement is included. Here is the breakdown.
do { //open DO statement
response = console.readLine("Do you understand do while loops? ");
if (response.equalsIgnoreCase("No")) { //open if statement
console.printf("Please try again.");
} while (response.equalsIgnoreCase("No")); //curly brace closes if statement
}// closes do statement
All you need to do is move the last curly brace just before while so it'll look like this: }} while (...);
Kasey Domer
787 PointsKasey Domer
787 PointsIt did! Thank you! :)