-2

私は割り当てのためにこのコードを持っています。コンパイルすると、

grades.java:18: error: 'else' without 'if'
    else
    ^
1 error

コードは次のとおりです。

public class grades
{
    public static void main (String [] args)
    {
        int gradeone=75;
        int gradetwo=80;
        int testscore= ((gradeone + gradetwo)/2);
        char grade;
        System.out.println("\n" + "your test score is" + testscore);
        if(testscore >= 90 )
      grade='A';
    elseif(testscore >= 80 );
      grade='B';
    elseif(testscore >= 70 );
      grade='C';
    elseif(testscore >= 65 );
      grade='D';
    else
      grade='F';
    }
}
4

5 に答える 5

4

他の人がすでに述べたように、構文は他の場合です-スペースに注意してください。

さらに、スキルに自信が持てるようになるまで、従来のコーディングスタイルに固執することを強くお勧めします。

A)今のところ、ブロックとステートメントを使用するときは中括弧構文を使用してください。コードが読みやすくなり、構文エラーを簡単に識別できるようになります。技術的には必須ではありませんが、中括弧なしでローカル変数とメソッドスコープを決定しようとすると困難になります。

    public static void main( String[] args ) {
    int gradeOne = 75, gradeTwo = 80, testScore = ( ( gradeOne + gradeTwo ) / 2 );
    char grade;

    if( testScore >= 90 ) {
        grade = 'A';
    } else if( testScore >= 80 ) {
        grade = 'B';
    } else if( testScore >= 70 ) {
        grade = 'C';
    } else if( testScore >= 65 ) {
        grade = 'D';
    } else {
        grade = 'F';
    }
    System.out.println( "\n" + "your test score is: " + testScore );
}

B)構文がわからない場合は、JLSで回答を参照してください...

于 2012-11-02T21:09:55.873 に答える
2

else ifのインステナードとあなたは行の終わりにあるelseifべきではありません。;else if

于 2012-11-02T20:16:25.900 に答える
1

の後にあるセミコロンを削除しelse ifます。この種のバグは、空のステートメントが原因で発生します。条件が満たされた場合はセミコロンを実行し、grade = 'B';評価なしで他のコード()を実行します。これifにより、else

于 2012-11-02T20:15:53.667 に答える
1

Javaには演算子がありませんelseifelse if代わりに書く必要があります。そのため、Javaコンパイラはコードと混同され、に関連するものを見つけることができませifelse

于 2012-11-02T20:16:35.760 に答える
0

elseifの代わりに「elseif」を入力し、if式の後のコンマを削除します。そうすると、コードは以下と同じになり、完全に実行されます:)

public class check {
    public static void main (String [] 
        int gradeone=75;
        int gradetwo=80;
        int testscore= ((gradeone + gradetwo)/2);
        char grade;
        System.out.println("\n" + "your test score is" + testscore);
        if(testscore >= 90 )
            grade='A';
        else if(testscore >= 80 )
            grade='B';
        else if(testscore >= 70 )
            grade='C';
        else if(testscore >= 65 )
            grade='D';
        else
            grade='F';    
}
于 2012-11-02T20:39:15.667 に答える