Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的方法说它必须返回一个类型字符串,并且即使我的方法返回一个类型字符串也会给我一个错误 公共静态字符串级别(){ 扫描仪s=新的扫描仪(System.in); System.out.println(“请输入您的字母等级”); 字符串级别=s.next(); 字符串a=“你的分数在93.0到100之间”; String b=“你的成绩在83.0到93.0之间”; String c=“你的成绩在73.0到83.0之间”; String d=“你的成绩在63.0到73.0之间”; String f=“你的成绩低于63.0”; if(等级等于('A')){ 返回a; }else if(等级等于('B')){ 返回b; }如果(等级等于('C')){ 返回c; }else如果(等级等于('D')){ 返回d; }else if(等级等于('F')){ 返回f; } }_Java - Fatal编程技术网

Java 为什么我的方法说它必须返回一个类型字符串,并且即使我的方法返回一个类型字符串也会给我一个错误 公共静态字符串级别(){ 扫描仪s=新的扫描仪(System.in); System.out.println(“请输入您的字母等级”); 字符串级别=s.next(); 字符串a=“你的分数在93.0到100之间”; String b=“你的成绩在83.0到93.0之间”; String c=“你的成绩在73.0到83.0之间”; String d=“你的成绩在63.0到73.0之间”; String f=“你的成绩低于63.0”; if(等级等于('A')){ 返回a; }else if(等级等于('B')){ 返回b; }如果(等级等于('C')){ 返回c; }else如果(等级等于('D')){ 返回d; }else if(等级等于('F')){ 返回f; } }

Java 为什么我的方法说它必须返回一个类型字符串,并且即使我的方法返回一个类型字符串也会给我一个错误 公共静态字符串级别(){ 扫描仪s=新的扫描仪(System.in); System.out.println(“请输入您的字母等级”); 字符串级别=s.next(); 字符串a=“你的分数在93.0到100之间”; String b=“你的成绩在83.0到93.0之间”; String c=“你的成绩在73.0到83.0之间”; String d=“你的成绩在63.0到73.0之间”; String f=“你的成绩低于63.0”; if(等级等于('A')){ 返回a; }else if(等级等于('B')){ 返回b; }如果(等级等于('C')){ 返回c; }else如果(等级等于('D')){ 返回d; }else if(等级等于('F')){ 返回f; } },java,Java,方法中的问题是它缺少默认的返回类型。如果输入的值不是a-F,则方法不会返回字符串 因此,抛出异常或返回默认值(例如,null): 除此之外,您正在将字符串与字符进行比较,您不应该这样做,因为这是不同的类型。因此,使用“而不是像我在上面的代码片段中显示的那样使用” 最后,如果语句: if (grade.equals("A")) { return a; } else if (grade.equals("B")) { return b; } else if (grade.equals(

方法中的问题是它缺少默认的返回类型。如果输入的值不是
a-F
,则方法不会返回字符串

因此,抛出异常或返回默认值(例如,
null
):

除此之外,您正在将
字符串
字符
进行比较,您不应该这样做,因为这是不同的类型。因此,使用
而不是像我在上面的代码片段中显示的那样使用

最后,如果语句:

if (grade.equals("A")) {
    return a;
} else if (grade.equals("B")) {
    return b;
} else if (grade.equals("C")) {
    return c;
} else if (grade.equals("D")) {
    return d;
} else if (grade.equals("F")) {
    return f;
}
throw new IllegalArgumentException("The value you entered is not valid");

您必须为该方法返回null、empty(“”)或默认字符串。因为嵌套的if条件类似于单独的函数,并且这些条件的返回值是if或else if条件的局部变量(仅在条件内部有效)。请按以下方式更正代码

switch (grade) {
    case "A":
        return a;
    case "B":
        return b;
    case "C":
        return c;
    case "D":
        return d;
    case "F":
        return f;
}
return "some default";

欢迎使用Stack Overflow。请将您的问题包含在类的完整源代码中(请参阅)。同时编辑问题的标记,因为这不是一个与HTML相关的问题。当有人输入
'G'
作为分数时,该方法会返回什么?
switch (grade) {
    case "A":
        return a;
    case "B":
        return b;
    case "C":
        return c;
    case "D":
        return d;
    case "F":
        return f;
}
return "some default";
public static String grade() {

    Scanner s = new Scanner([System.in](https://System.in));

    System.out.println("Please enter your letter grade");

    String grade = [s.next](https://s.next)();

    String a = "Your grade is between 93.0 and 100";

    String b = "Your grade is between 83.0 and 93.0";

    String c = "Your grade is between 73.0 and 83.0";

    String d = "Your grade is between 63.0 and 73.0";

    String f = "Your grade is less than 63.0";



    if(grade.equals('A')) {

        return a;

    } else if (grade.equals('B')) {

        return b;

    } else if (grade.equals('C')) {

        return c;

    } else if (grade.equals('D')) {

         return d;

    } else if (grade.equals('F')) {

        return f;

    }

    return null; // or return f;
}