我试图提示用户给我三个字符串中的一个:"阿姆斯特丹," "列克星敦,"和#34;麦迪逊。"如果用户没有输入其中一个字符串,则应反复提示他们,直到他们这样做。
当我输入一个应该被接受的字符串时,例如" Lexington,"我仍然收到"请输入一个有效的城市。"
任何人都可以告诉我,即使在我否定其中的条件时,While循环是如何运行的?
public String readCity() {
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();
}
return x;
}
答案 0 :(得分:8)
答案 1 :(得分:2)
您应该使用AND
代替OR
,如下所示:
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();
}
答案 2 :(得分:0)
如果您使用Java 7或更高版本,我更喜欢以下代码:
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.");
}
}
}