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"):
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句