please take a look at this piece of code and explain what is going on here. When I use boolean || operator it is giving me an infinite loop but when I use && operator it seems fine. How come? I put in some debug lines too. Same thing if I rewrite it as a do-while loop. So, when I replace: while (userStatus != 1 || userStatus != 2) with: while (userStatus != 1 && userStatus != 2) it is good. Thanx guys!
import java.util.Scanner;
public class Example
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int userStatus = 0;
String maritalStatus = "";
System.out.println("userStatus variable value outside the loop: " + userStatus); //debug
while (userStatus != 1 || userStatus != 2)
{
System.out.println("userStatus variable value inside the loop: " + userStatus); //debug
System.out.println("Enter status: ");
maritalStatus = in.next().toUpperCase();
if (maritalStatus.equals("SINGLE"))
{
userStatus = 1;
System.out.println("after SINGLE userStatus is assigned value: " + userStatus); //debug
}
else if (maritalStatus.equals("MARRIED"))
{
userStatus = 2;
System.out.println("after MARRIED userStatus is assigned value: " + userStatus); //debug
}
System.out.println("userStatus value inside the loop after IF: " + userStatus); //debug
} //end while
System.out.println("Value of entered String is " + userStatus);
} //end main
} //end class