Я работаю над домашней работой в университете, и я столкнулся с этой проблемой. То, что мне нужно выполнить, - это когда пользователь вводит металлический элемент из цинка, железа, алюминия и натрия. Я хочу, чтобы программа вернулась. Когда сравниваемый элемент является истинным, логическое значение все еще выводит false. Не могли бы вы назвать проблему в этом коде?Не могу вернуть истинное значение на логическом
класс IonicCompound
public class IonicCompound {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter a metallic element: ");
String element1 = input.nextLine();
System.out.println("Please enter a non-metallic element: ");
String element2 = input.nextLine();
Elements element = new Elements(element1, element2);
element.isMetal(element.first);
if (element.isMetal(element.first) == true) {
System.out.println("It's a metallic element ");
} else {
System.out.println("It's not a metallic element ");
}
}
}
класс Elements
public class Elements {
public String first, second;
public Elements(String f, String s) {
first = f;
second = s;
}
public boolean isMetal(String ff) {
if (ff == "iron" || ff == "Iron" || ff == "aluminium" || ff == "Aluminium" || ff == "sodium" || ff == "Sodium" || ff == "zinc" || ff == "Zinc") {
return isMetal(ff) == true;
} else {
return false;
}
}
public String toString() {
String element = first + " " + second;
return element;
}
Не сравнивать строки с '' ==. Смотрите: [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java/513839) – Jesper