-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

正如其他人已经提到的那样,语法是else if - 注意空格。

此外,我强烈建议您坚持传统的编码风格,直到您对自己的技能更有信心。

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';任何评估,这将分隔ifelse

于 2012-11-02T20:15:53.667 回答
1

Java 没有运算符elseif。你必须改写else if。因此,java 编译器与您的代码混淆,无法找到与if您的else.

于 2012-11-02T20:16:35.760 回答
0

将“else if”替换为 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 回答