Ошибка: неверные типы операндов для бинарного оператора '=='
Я просто хотел выполнить задачу в моей Книге, но я не понимаю, почему это неправильно. Следует сказать, что отрицательные числа не являются положительными, а положительные не являются отрицательными с логическим значением. Это мой код:
import javax.swing.JOptionPane;
public class Zahlentest {
public static void main(String[] args) {
String eingabe;
char Zahl;
boolean istVokal;
eingabe = JOptionPane.showInputDialog("Geben Sie eine Zahl ein: ");
if (Zahl == "- && Zahl") {
istVokal = false;
} else {
istVokal = true;
}
if (istVokal == true) {
JOptionPane.showMessageDialog(null, "Die Zahl ist nicht negativ!");
} else {
JOptionPane.showMessageDialog(null, "Die Zahl ist negativ!");
}
}
}
Я не знаю, что я делаю неправильно... Пожалуйста, помогите. Это код ошибки:
Zahlentest.java:10: error: bad operand types for binary operator '=='
if (Zahl == "- && Zahl") {
^
first type: char
second type: String
1 error
3 ответа
Zahl - это символ, который вы пытаетесь сравнить со String. В Java это запрещено, хотя есть и другие языки, где это действительно разрешено.
if(Zahl == '-')
Может быть, то, что вы ищете, но я все еще сомневаюсь в этом, потому что Заль не инициализируется на этом этапе. Я думаю, что вы действительно ищете
if (eingabe.equals("- && Zahl"))
В качестве примечания позвольте мне отметить, что мы не начинаем имена полей или имен переменных с символов верхнего регистра. Мы обычно используем CamelCase для этого
Вы сравниваете char с String, поэтому ошибка. Операнды бинарного оператора '==' должны быть одного типа.
Вы не можете сравнить строку - && Zahl
персонажу в переменной Zahl
с оператором ==
потому что в Java символ является примитивным типом, в то время как строка является объектом.
Кстати, вы не присвоили значение Zahl
Я не понимаю, каково ваше намерение, сравнивая его со строкой.