Guillermo Alvarez
Guillermo Alvarez

Reputation: 1775

If statement oddly not working properly...can't figure it out

So this is a silly question but for some reason this isn't working for me. This is a small part of a little program I am trying to do and I am debugging but a simple if statement isn't working for some reason. Here is the following code:

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");}

So it should simply grab the input, and if I type Enqueue into the prompt it should print it out. The problem is that it isn't doing it. When I check the value of the variable expr it does show up as the string Enqueue but it doesn't go in and print it.....odd. Is there something dumb I am missing?

Upvotes: 3

Views: 98

Answers (1)

Mark Peters
Mark Peters

Reputation: 81164

You want

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

== is not safe to use with Strings. That operator compares the two references for equality, which will only be true when the two references point to the same instance. In this case, you have two different instances that have the same value. To do value comparisons, we use .equals().

Upvotes: 5

Related Questions