如果声明奇怪地不能正常工作......无法弄明白

时间:2011-10-06 03:33:10

标签: 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("Enqueue");}

所以它应该只是抓取输入,如果我在提示符中键入Enqueue,它应该打印出来。问题是它没有这样做。当我检查变量expr的值时,它确实显示为字符串Enqueue但它不会进入并打印它.....奇数。我不知道有什么蠢事吗?

1 个答案:

答案 0 :(得分:5)

你想要

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

==与Strings一起使用是不安全的。该运算符将两个引用进行相等性比较,只有当两个引用指向同一个实例时才会为true。在这种情况下,您有两个具有相同的不同实例。要进行价值比较,我们使用.equals()