'Else If'在 Java 中给出错误" 'else' without 'if' "



我想用 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");
    }

}

问题发生在//grass 下的"else if"。我做错了什么吗?

在这一行中:

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

还有这一行:

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

您必须在最后删除;。这些分号放错了地方,编译器会将第一个if语句解释为没有主体的if,将{}之间的代码解释为块作用域,将else if语句解释为没有ifelse

另外,请注意,所有的字符串比较都是错误的,在 Java 中,您必须使用 equals() 来比较两个字符串的相等而不是比较标识==

第一个条件后有一个";"。

编译器假定这是 if 语句的结尾,因此编译器在"else if"行显示错误。删除";",应该没问题!

我遇到了和你一样的问题。我发现这是解决方案,它对我来说效果很好。我想这就是你需要的。

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

最新更新