public static char determineGrade(float grade)
{
    char letter;


        if(grade>=90 && grade<=100)
        {
            letter='A';
        }
        else if(grade>=80 && grade<=89)
        {
            letter='B';
        }
        else if(grade>=70 && grade<=79)
        {
            letter='C';
        }
        else if(grade>=60 && grade<=79)
        {
            letter='D';
        }
        else if(grade<=59)
        {
            letter='F';
        }


   return letter;
}


该程序不断告诉我要初始化字母,但是我不明白为什么需要这样做。谢谢。

最佳答案

问题是 :

else if(grade<=59)
        {
            letter='F';
        }


应该

 else
        {
            letter='F';
        }


因为您有一系列if条件,所以编译器无法知道条件在运行时是否为真。因此,您需要为letter声明默认值,或者最后一个else不应具有任何条件。

对于100级以上的学生,应该进行一些检查。

如果不接受超过100的等级,则应在方法开始时抛出一个异常(根据经验):

if(grade > 100){
   throw new IllegalArgumentException("Invalid input"):
}

关于java - 为什么我在初始化字母时遇到错误,如何解决?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24566103/

10-09 04:19