I\'m trying to prompt the user to give me one of three strings: \"Amsterdam,\" \"Lexington,\" and \"Madison.\" If the user doesn\'t enter one of those strings, they should be re
If you use Java 7 or above I would prefer the following code:
public String readCity() {
while (true) {
String x = keyboard.next();
switch(x) {
case "Amsterdam":
case "Lexington":
case "Madison":
return x;
default:
System.out.println("Please enter a valid city.");
}
}
}
You should use AND
instead of OR
like this:
String x = keyboard.next();
while (!x.equals("Amsterdam") && !x.equals("Lexington") && !x.equals("Madison")) {
System.out.println("Please enter a valid city.");
x = keyboard.next();
}
Refer to De-Morgan's laws:
(NOT a) OR (NOT b)
is actually
NOT (a AND b)
You need to have &&
instead of ||
.