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/