Java - 无法突破循环

时间:2017-06-22 19:29:40

标签: java loops while-loop

无法突破while循环。我的代码出了什么问题? 从逻辑上看,一切看起来都是正确的:

虽然(不是'或不是' p') --- Printline:" Retype" --- ReadInput:

while (!answerInput.equals("s") || !answerInput.equals("p"))
{
    System.out.print("Wrong Input. Type S for Sum or P for Product: ");
    answerInput = userInput.next();
    answerInput = answerInput.toLowerCase();    
}

请告知。

1 个答案:

答案 0 :(得分:4)

用简单的英语,你的代码说:

  

如果" answerInput"不仅仅是' s," answerInput"不是' p',这个表达式是真的。

这句话永远不会是假的。它显然要么不是''是不是' p&#39 ;;它不能同时是两个值。两个不等式中的一个总是正确的,因此整个表达式也将是真实的。

你应该说的是:

  

如果" answerInput"不仅仅是' s," answerInput"除了' p'之外,这个表达式也是如此。

在Java中,表达为:

while (!answerInput.equals("s") && !answerInput.equals("p"))