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

Or (||) Statements

While working within the Workspace I ran into a problem with using the ||(or) command. It only works for the first "if" statement and not the others. I have gone back over 20x to see if I did something wrong but everything check out. What could be the problem? Could it be just a system or software error? (Below is part of the code that seems to be the problem)

String name = console.readLine("Enter a name: "); 
String adjective = console.readLine("Enter an adjective: "); 
String noun = console.readLine("Enter a noun: ");

if (noun.equalsIgnoreCase("dork")|| noun.equalsIgnoreCase("jerk")|| noun.equalsIgnoreCase("nerd")) {
  console.printf("That language is not allowed. Exiting. \n\n"); 
  System.exit(0); 
}

1 Answer

String name = console.readLine("Enter a name: "); 
String adjective = console.readLine("Enter an adjective: "); 
String noun = console.readLine("Enter a noun: ");
 if (noun.equalsIgnoreCase("dork")|| noun.equalsIgnoreCase("jerk")|| noun.equalsIgnoreCase("nerd")) {
      console.printf("That language is not allowed. Exiting. \n\n"); 
System.exit(0); 
}

Well that'S how an OR works. I guess that your noun is dork? That way your first statement is true, and the other cases can be ignored since an or just needs one TRUE to pass. If you use AND (&&) all of your statements have to be true so that the whole if is true.

A truthtable for OR looks like this:
x   y  Result
0   0   0
0   1   1
1   0   1
1   1   1

A truthtable for AND looks like this:
x   y  Result
0   0   0
0   1   0
1   0   0
1   1   1


1 = true; 0 = false