2015-12-18 70 views
-7

我有这段代码检查用户输入是否可以接受。但由于某种原因,它总是进入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")); 
+3

很确定你希望那些是AND操作符'&&'不是OR .... – Vlad274

+0

为什么有倒票,因为新用户提出错误的问题?那么还有谁提出错误的问题?嗨@Andrew - 这[链接](http://stackoverflow.com/help/how-to-ask)将帮助你。 –

回答

1

使用此

if (!bedSize.equals("SINGLE") && !bedSize.equals("DOUBLE") && !bedSize.equals("KING")) 

(如果床尺寸比 “单” 不同的是 “双” 比 “国王” 的不同有所不同)

-2

好的,现在都解决了。我正在使用OR运算符而不是AND。感谢您的回应!

if (!bedSize.equals("SINGLE") && !bedSize.equals("DOUBLE") && !bedSize.equals("KING")) 
+2

是的,这是其中一些用户告诉你的。为什么不相信帮助你解决问题的人之一,而不是写出自己的答案?已经提出了 – CubeJockey

+1

。检查其他答案,并接受其中一个请。 – Jan

0

作为替代方案,你可以去

List<String> allowed = Arrays.asList("SINGLE", "DOUBLE", "KING"); 
if(!allowed.contains(bedsize)) { 

} 

这将在以后的扩展方面方式更好。假设你想添加QUEEN大小床 - 多少麻烦会导致你的if