我的作业需要我为输入的双精度值返回一个字符串值。我试过几件事,但都没用。可能这对你来说太基本了,但我在这里或网上找不到答案,可能是因为我不知道该去哪里找。如果你能指出去哪里找我或者帮我,那就太好了。非常感谢你!首先我试了一下:
public static String gradeLetter(double grade) {
if (grade<=34) {
String c = "FF";
return c;
}
if (grade<=45 && grade >= 35) {
String c = "FD";
return c;
}
if (grade<=52 && grade >= 46) {
String c = "DD";
return c;
}
if (grade<=59 && grade >= 53) {
String c = "DC";
return c;
}
if (grade<=66 && grade >= 60) {
String c = "CC";
return c;
}
if (grade<=73 && grade >= 67) {
String c = "CB";
return c;
}
if (grade<=80 && grade >= 74) {
String c = "BB";
return c;
}
if (grade<=87 && grade >= 81) {
String c = "BA";
return c;
}
if (grade<=100 && grade >= 88) {
String c = "AA";
return c;
}
}
但没用所以我试了这个:
public static String gradeLetter(double grade) {
String c = "";
if (grade<=34) {
String a = "FF";
}
if (grade<=45 && grade >= 35) {
String a = "FD";
}
if (grade<=52 && grade >= 46) {
String a = "DD";
}
if (grade<=59 && grade >= 53) {
String a = "DC";
}
if (grade<=66 && grade >= 60) {
String a = "CC";
}
if (grade<=73 && grade >= 67) {
String a = "CB";
}
if (grade<=80 && grade >= 74) {
String a = "BB";
}
if (grade<=87 && grade >= 81) {
String a = "BA";
}
if (grade<=100 && grade >= 88) {
String a = "AA";
}
return c+a;
}
还是不走运。。。两者都给出了编译错误。
4条答案
按热度按时间pgky5nke1#
您在函数中使用了一个局部变量,因此它返回null。您可以尝试:
如果没用就告诉我
ktecyv1j2#
在您的第一个例子中,我发现您得到了一个compile erro,因为您错过了方法末尾的一个返回(在if语句之外)
在第二种情况下,您尝试访问
a
超出定义范围:2izufjch3#
这里有两个主要问题:1)变量a在grade>100的情况下没有声明,而program在这种情况下会抛出错误2)没有必要检查所有这些条件,因为只有一个条件是真的,所以最好使用if-else-if语句,如:
通过这种方式,您将确保您的方法将返回一个值(即使这是一个空字符串),并且您将不会花时间检查将是假的语句
s6fujrry4#
试试这个