'Else If'在Java中给出错误“'else'而没有'if'”

时间:2012-06-18 04:11:58

标签: java netbeans if-statement

我想用NETBEANS 7.1.2做一些Java编码,但是当我尝试构建这段代码时,它给出了错误“'else'而不是'if'”:

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    String search1;
    search1 = jTextField1.getText();

    // stone
    if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");
    {
        jTextField2.setText("Stone: 1");

    }

    // grass
    else if (search1=="Grass" || search1=="grass");
    {
        jTextField2.setText("Grass: 2");
    }



}

问题出现在//草下的'else if'处。我做错了吗?

3 个答案:

答案 0 :(得分:11)

在这一行:

if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");

这一行:

else if (search1=="Grass" || search1=="grass");

您必须在结尾删除;。这些分号是错误的,编译器会将第一个if语句解释为没有正文的if{}作为块作用域和else if语句之间的代码没有else的{​​{1}}。

另外,请注意所有字符串比较都是错误的,在Java中,您必须使用if来比较相等的两个字符串,而不是{{1比较身份

答案 1 :(得分:2)

你有一个“;”在第一个条件之后。

编译器假设这是if语句的结尾,因此编译器在“else if”行显示错误。 除掉 ”;”它应该没问题!

答案 2 :(得分:0)

我有同样的问题,就像你拥有的一样。 我发现这是解决方案,它对我来说很好。我想这就是你需要的。

    String unit=jTextField1.getText();
            if(unit.equals("kg") || unit.equals("gm")){
    // some code
            }
else if(unit.equals("dzn")||unit.equals("qty")){
    // some code
        }