错误:二元运算符的错误操作数类型'=='

时间:2018-02-11 10:47:45

标签: java cmd binary operator-keyword operand

只是想在我的书中完成一项任务,但我不明白为什么这是错误的。应该说负数不是正数而且正数不是布尔值的负数。 这是我的代码:

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 个答案:

答案 0 :(得分:0)

您将char与String进行比较,这就是错误的原因。二元运算符的操作数' =='必须是同一类型。

答案 1 :(得分:0)

Zahl是一个你想要与String比较的char。在java中是不允许的,虽然有其他语言确实允许。

if(Zahl == '-') 

也许你在寻找什么,但我仍然怀疑它,因为Zahl在那个阶段没有初始化。我认为你真正想要的是

if (eingabe.equals("- && Zahl"))

作为脚注,我要指出,我们不会使用大写字符启动字段名称或变量名称。我们通常使用camelCase

答案 2 :(得分:0)

您不能将字符串- && Zahl与变量Zahl中的字符与运算符==进行比较,因为在java中,char是基本类型,而String是对象

顺便说一下:你没有为Zahl分配一个值,我不明白你的意图是通过将它与字符串进行比较。