我有这段代码检查用户输入是否可以接受。但由于某种原因,它总是进入if语句。谁知道为什么?
do{
System.out.println("Please enter the size of bed " + i + ". (Enter SINGLE, DOUBLE or KING): ");
bedSize = userInput.next().toUpperCase();
if (!bedSize.equals("SINGLE") || !bedSize.equals("DOUBLE") || !bedSize.equals("KING")){
System.out.println("Must enter one of the options; SINGLE, DOUBLE, KING");
}
}while(!bedSize.equals("SINGLE") || !bedSize.equals("DOUBLE") || !bedSize.equals("KING"));
答案 0 :(得分:1)
使用此
if (!bedSize.equals("SINGLE") && !bedSize.equals("DOUBLE") && !bedSize.equals("KING"))
(如果床的大小不同于“SINGLE”和不同,“DOUBLE”和不同于“KING”)
答案 1 :(得分:0)
作为替代方案,你可以去
List<String> allowed = Arrays.asList("SINGLE", "DOUBLE", "KING");
if(!allowed.contains(bedsize)) {
}
对于以后的扩展,哪种方式更好。假设你想要添加QUEEN大小的床 - 这会导致你的if
多少麻烦?
答案 2 :(得分:-2)
好的,现在都解决了。我使用OR运算符而不是AND。感谢您的回复!
if (!bedSize.equals("SINGLE") && !bedSize.equals("DOUBLE") && !bedSize.equals("KING"))