do while循环中的java equalsIgnoreCase()总是返回false;
我只是想确定用户是否输入了YES或NO值(尽管不考虑大写,因此do while循环中的java equalsIgnoreCase()总是返回false;,java,do-while,Java,Do While,我只是想确定用户是否输入了YES或NO值(尽管不考虑大写,因此equalsIgnoreCase())。但是,无论我输入是或否,do while都不会中断,例如 public int addInformation() { final int YES = 1; final int NO = 0; String userDecision = ""; try(Scanner scanner = new Scanner(System.in)) { Syst
equalsIgnoreCase()
)。但是,无论我输入是或否,do while都不会中断,例如
public int addInformation() {
final int YES = 1;
final int NO = 0;
String userDecision = "";
try(Scanner scanner = new Scanner(System.in)) {
System.out.println("Add Information Now? [YES/NO]");
do {
System.out.println("Please Enter YES or NO ");
userDecision = scanner.nextLine();
} while(!userDecision.equalsIgnoreCase("yes") |
!userDecision.equalsIgnoreCase("no"));
}
if(userDecision.equalsIgnoreCase("yes")) {
return YES;
}
return NO;
}
我正在寻找“当输入值不等于‘是’或‘否’时,再次请求数据”的行为。然而,我的代码建议“不管键入什么,让我们只是为了好玩而继续循环…”我哪里出错了,Stack?谢谢这种情况
while (!userDecision.equalsIgnoreCase("yes") |
!userDecision.equalsIgnoreCase("no"))
这永远是真的。任何字符串必须不等于“是”或“否”
如果要检查字符串是否不等于其中任何一个,您的意思是:
while (!userDecision.equalsIgnoreCase("yes") &&
!userDecision.equalsIgnoreCase("no"))
你的情况不正确。如果其中一个条件为
false
,则需要结束循环(因此需要and)。大概
while(!userDecision.equalsIgnoreCase("yes") &&
!userDecision.equalsIgnoreCase("no"));
你说得对,先生!愚蠢的错误,但非常感谢!