2015-02-22 4 views
0

Я новичок на этом сайте :)Java IF оператор не выводит правильно

Во всяком случае, я решил изучить Java пару дней назад, и у меня есть небольшая проблема, которую я не знаю, как исправить. Это мой код: Когда имя = Jim я хочу вывести "Hello Jim", когда оно не = Jim затем выход "Youre не Джим, ты" + имя

import java.util.*; 
public class app { 
    public static void main(String[] args) { 
     String name; 
     Scanner inputName = new Scanner(System.in); 

     System.out.println("Enter a name: "); 
     name = inputName.nextLine(); 

     if (name == "Jim") { 
      System.out.println("Hello " + name); 
     } else { 
      System.out.println("Youre not Jim! You are " + name); 
     } 

    } 
} 

ответ

0

изменение

if (name.equalsIgnoreCase("Jim")) { 
+0

Спасибо :) Я не знал, что смогу это сделать – insideman11

+0

@ insideman11 Нет проблем, удачи в программировании! – Johan

1
if (name == "Jim") 

Это неправильно. Вы сравниваете строки в Java с .equals().

if (name.equals("Jim")) 

Вы должны всегда сравнивать ссылки на объект по значению. Поймите, что оператор == сравнивает только ссылки на объекты и примитивные значения. Вы не хотите сравнивать ссылки на объекты в этом случае, вы хотите сравнить объекты осмысленно. Реализация .equals() класса String делает это для вас.

+0

О, хорошо, спасибо! :) Извините, я новичок в java, не знал этого! – insideman11

+0

@ insideman11 Нет проблем. Вы просто сделали, возможно, самую распространенную ошибку Java-учеников :) Удачи – Kon

Смежные вопросы