麻烦.equals()和==

时间:2013-04-26 20:18:18

标签: java

我遇到这些if语句时遇到问题,无法解决问题:

  1. 如果我尝试将它们更改为嵌套if,否则如果格式化,我会收到编译器错误,说“else”并且没有if语句。
  2. if语句甚至不起作用,正如您从下面的输出中看到的那样,即使字符串不相等,它们也都会运行。
  3. 任何帮助都会很棒。谢谢!

    if (labelArray[0] == e.getSource() && myAppliance.size() >= 1) {
        if (myAppliance.get(0).getClass().getName().toUpperCase().equals("CLOCK")); {
            System.out.println(options[0]);
            System.out.println(myAppliance.get(0).getClass().getName());
            infoBox((myAppliance.get(0).toString()),"Info");
        }
        if (myAppliance.get(0).getClass().getName().toUpperCase().equals("LAMP")); //"Clock", "Lamp", "Television"
        {
            System.out.println(options[1]);
            System.out.println(myAppliance.get(0).getClass().getName());
            infoBox((myAppliance.get(0).toString()),"Info");
        }
        if (myAppliance.get(0).getClass().getName().toUpperCase().equals("TELEVISION")); {
            System.out.println(options[2]);
            System.out.println(myAppliance.get(0).getClass().getName());
            infoBox((myAppliance.get(0).toString()),"Info");
        }
    }
    

    输出:

    Clock
    Clock
    Lamp
    Clock
    Television
    Clock
    

3 个答案:

答案 0 :(得分:7)

使用; s删除行尾的if

答案 1 :(得分:0)

从if语句后立即删除;,编译器将它们视为语句,并且它无法使用if本身。

答案 2 :(得分:0)

如果他们可以使用下一个语句,那么它们将在下一行运行或将花括号括起来的块作为语句处理。通过在if之后写;,它基本上使用空语句,然后继续执行你的代码块。

只需删除;即可。