2014-12-13 6 views
1

Я пытаюсь создать программу на Java, которая позволяет пользователю выбирать из списка кофе, содержащихся в массиве String, и продолжает работу, но не удается проверить и распечатать выражение else.«If» Statement Failed Check, связанный с массивом String

Вот соответствующий код:

Scanner scan = new Scanner(System.in); 
String[] flavors = {"Black", "French Vanilla", "Hazelnut", "Mango", "Cherokee", "anarcho-syndicalism", "Otis" }; 

...

System.out.println("Today we have " + Arrays.toString(flavors)); 
System.out.println("Please enter the name of the coffee you would like exactly as shown above: "); 
String coffee = scan.next(); 

...

for (int i = 0; i < flavors.length; i++) { 
    if (coffee == flavors[i]) { 
     String selection = flavors[i]; 

Хотя не показано здесь, я считаю, все в правильном формате позже в программа. Есть идеи?

ответ

3

В общем, при сравнении объектов для равенства в java используйте .equals(). Используйте == для сравнения примитивов. В java, String s - объекты.

изменение:

if (coffee == flavors[i]) { 

к:

if (coffee.equals(flavors[i])) { 

При сравнении объектов с ==, они будут только равны, если они на самом деле тот же экземпляр.

+1

Это похоже. Спасибо, Асаф! –