Java 如果语句异常地不能正常工作…可以';我想不出来

Java 如果语句异常地不能正常工作…可以';我想不出来,java,Java,所以这是一个愚蠢的问题,但出于某种原因,这对我不起作用。这是我正在调试的一个小程序的一小部分,但是一个简单的if语句由于某种原因不能工作。以下是代码: System.out.println("Enter a command (Enqueue, Dequeue, or Quit): "); String expr = input.next(); System.out.println(expr); if (expr=="Enqueue") { System.out.println("Enque

所以这是一个愚蠢的问题,但出于某种原因,这对我不起作用。这是我正在调试的一个小程序的一小部分,但是一个简单的if语句由于某种原因不能工作。以下是代码:

System.out.println("Enter a command (Enqueue, Dequeue, or Quit): ");
String expr = input.next();
System.out.println(expr);
if (expr=="Enqueue") {
   System.out.println("Enqueue");}
因此,它应该只抓取输入,如果我在提示符中键入Enqueue,它应该将其打印出来。问题是它没有这样做。当我检查变量expr的值时,它确实显示为字符串Enqueue,但它不会进入并打印它…奇数。有什么我不知道的吗?

你想知道吗

if (expr.equals("Enqueue")) {

=
与字符串一起使用不安全。该运算符比较两个引用的相等性,只有当两个引用指向同一实例时才为真。在本例中,您有两个具有相同值的不同实例。为了进行值比较,我们使用
.equals()

是的,从官方Java教程中我所看到的很少一点,它们没有很好地警告您这一点。另请参见: