How to fix “error: bad operand types for binary operator ‘||’ ” in java

To answer your question about the while loop condition directly (are the two conditions equivalent?):

No, they aren’t equivalent, but it’s only a small change needed. The following two conditions are equivalent by DeMorgan’s Law.

boolean b1 =  (response != '4' && response != '3' && response != '2' && response != '1');
//                               (note: I corrected what looked like a typo here ^^)
boolean b2 = !(response == '4' || response == '3' || response == '2' || response == '1');

So basically you have to add a ! before your second while loop condition to make them equivalent (assuming it really was a typo in the first one).

(Note: you still need to have the ! inside the while loop parentheses though, so it will look like while (!(...)))

Leave a Comment