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.

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;

// 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.