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

Roc*_*one 2 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");
    }



}
Run Code Online (Sandbox Code Playgroud)

问题出现在//草下的'else if'处.难道我做错了什么?

Ósc*_*pez 11

在这一行:

if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");
Run Code Online (Sandbox Code Playgroud)

这一行:

else if (search1=="Grass" || search1=="grass");
Run Code Online (Sandbox Code Playgroud)

你必须删除;最后.那些分号是错误的,编译器会将第一个if语句解释为if没有正文,{}作为块作用域和else if语句之间的代码为elseif.

此外,请注意所有字符串比较都是错误的,在Java中,您必须使用equals()比较两个字符串的相等性,而不是==比较身份.