2

NETBEANS 7.1.2 で Java コーディングを行おうとしていますが、このコードをビルドしようとすると、「if」なしで「else」というエラーが表示されます。

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' で発生します。私は何か間違ったことをしていますか?

4

3 に答える 3

11

この行で:

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

そして、この行:

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

最後に を削除する必要があり;ます。これらのセミコロンの位置が間違っているため、コンパイラは最初のifステートメントをif本体なしの として解釈し、 の間のコードを{}ブロック スコープとして解釈し、ステートメントとelse ifステートメントの間のコードをelseなしの として解釈しifます。

また、すべての文字列比較が間違っていることに注意してください。Java では同一性を比較するではなく、 2 つの文字列を比較するために使用する必要があります。equals()==

于 2012-06-18T04:15:08.227 に答える
2

あなたは「;」を持っています 最初の条件の後。

コンパイラは、これが if ステートメントの終わりであると想定するため、コンパイラは「else if」行でエラーを表示します。「;」を削除します そしてそれは大丈夫なはずです!

于 2012-06-18T04:14:08.553 に答える
0

私はあなたが持っているのと同じ問題を抱えていました。これが解決策であることがわかり、私にとってはうまくいきました。これが必要だと思います。

    String unit=jTextField1.getText();
            if(unit.equals("kg") || unit.equals("gm")){
    // some code
            }
else if(unit.equals("dzn")||unit.equals("qty")){
    // some code
        }
于 2012-10-05T10:26:34.047 に答える