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

in this case the Boolean declaretion is a variable or what ? why in the bigining we declare the bolean without a value

I wanna know why we can declare a variable = to not value and the bolean not String response = ""; boolean isInvalidWord;

Example.java
// I have initialized a java.io.Console for you. It is in a variable named console.
String response =" ";
boolean isInvalidWord;
do {
  response = console.readLine("Do you understand do while loops?  ");
  isInvalidWord = (response.equalsIgnoreCase("No"));
  if (isInvalidWord);
  } while(isInvalidWord);
console.printf("Because you said %s,you passed the test!",response);

1 Answer

In the line boolean isInvalidWord; the variable isInvalidWord is declared to be of the type boolean. Any boolean value you give it in its declaration will be ignored because inside the do-while loop, its value is set to (response.equalsIgnoreCase("No")); before its value is checked. You could similarly change String response =" "; to String response;, since whatever value it has gets overwritten in the first line inside the do section of the do-while loop. The do section of the do-while loop runs once before the while condition is checked.

isInvalidWord and response are declared before the do-while loop so that their values are accessible outside the do section of the do-while loop.

The line if (isInvalidWord); does not do anything with its result, and can be removed.