【问题标题】:error: bad operand types for binary operator '=='错误:二元运算符“==”的操作数类型错误
【发布时间】:2018-02-11 10:47:44
【问题描述】:

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

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

【问题讨论】:

  • 注意Zahl应该是小写的,因为它是一个变量;如果您担心zahl 是消极的还是积极的,那么istVokal 是没有意义的。
  • 好吧,错误很清楚地告诉您char == String 无效,尽管您还不清楚您希望该行做什么。您还没有将该变量分配给任何东西。

标签: java cmd binary operator-keyword operand


【解决方案1】:

Zahl 是您尝试与字符串进行比较的字符。在 java 中这是不允许的,尽管确实有其他语言是允许的。

if(Zahl == '-') 

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

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

作为脚注,让我指出,我们不会以大写字符开头的字段名称或变量名称。我们通常为此使用 camelCase

【讨论】:

  • 谢谢你的回答是正确的......我会在 6 分钟内接受你的回答,因为我现在不能:)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    顺便说一句:您没有为Zahl 赋值,通过将其与字符串进行比较,我不明白您的意图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多