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

Jonathan Hector
Jonathan Hector
5,225 Points

Do while loop in Java n working

After doing it multiple times, my 'do while' loop still doesn't want to work.

Example.java
// I have initialized a java.io.Console for you. It is in a variable named console.

String response;
boolean ask;
     do {
  response = console.readLine("Do you understand do while loops? \n");
  ask.equalsIgnoreCase("no");
 if (ask){
   console.printf("Try again!");
                  }
       while (ask);
}                                  
Salomon Orrego Martinez
Salomon Orrego Martinez
9,137 Points

You have a problem trying to get the value for the variable ask, the equalsIgnoreCase() is a method you can use with the String response you have and it will return a boolean value, you need to fix it like these (order is also good for cheching code):

// I have initialized a java.io.Console for you. It is in a variable named console.

 String response;
 boolean ask;
 do {
        response = console.readLine("Do you understand do while loops? \n");
        ask=response.equalsIgnoreCase("no");
        if (ask){
          console.printf("Try again!");
        }while (ask);

}

the response.equalsIgnoreCase("no") returns a boolean value that is stored in the variable ask

I hope I helped a little

2 Answers

Hi Jonathan,

This code worked for me. The boolean isn't necessary for the loop because we're evaluating based on the "no" answer.

String response = console.readLine("Do you understand loops? ");

do{
response = console.readLine("Do you understand do while loops?");
}while(response.equalsIgnoreCase("no"));

console.printf("Because you said %s, you passed the test!",response);
Jonathan Hector
Jonathan Hector
5,225 Points

Thanks Nick Oman. I tried it and it worked.