System.out.print("Enter operation to perform (+ OR - OR * OR /):");
operator= userInput.next();
我想如果输入+, - ,*或/,它接受该值,如果输入其他内容,则重复该问题。在进入四个操作符之一之前,它会一直循环。
我试过了:
while (!operator.equals("-") ||operator.equals("+") || operator.equals("*") || operator.equals("/") )
{
System.out.print("Enter operation to perform (+ OR - OR * OR /):");
userInput.next();
}
operator = userInput.next();
但它不起作用。有什么建议?感谢
答案 0 :(得分:0)
您试图否定整个条件,但!
运算符仅对其附加的第一个操作数进行操作,因为!
has a higher precedence比||
(和&&
)。
您可以添加澄清括号,以指示需要否定整个表达式。
while ( !(operator.equals("-") || operator.equals("+") ||
operator.equals("*") || operator.equals("/") ) )
作为替代方案,你也可以否定每个单独的支票,小心切换到“和”操作符(不是“ - ”而不是“+”和......)
while (!operator.equals("-") && !operator.equals("+") &&
!operator.equals("*") && !operator.equals("/") )
此外,在while
循环内,将next()
的结果分配给运算符,以便您可以再次检查它,就像在代码顶部所做的那样。
operator = userInput.next();
此外,您可能希望将nextDouble()
的来电回复分配给operator
以外的其他变量(String
)。