missing return statement

img


我想问下我这个reuturn已经写了是return x,但怎么还是显示我missing
return statement?

你的逻辑有问题,如果你的目的是,x为有效值,返回,无效值不返回
应该在程序里用 throw 丢出异常的方式,而不是说有一个分支不写 return 返回值。

少了个返回值 走else情况

是这样的,你的return语句是写在一个条件语句里面的,因此当条件不满足是执行不到这个语句的。你只需要在方法末尾补一个return语句即可

需要在else语句后面添加返回语句return 0;,才能确保无论你输入是什么,函数都会返回一个值。以下是修正后的代码:

public static int CheckSide(String side){
    Scanner input = new Scanner(System.in);
    if (input.hasNextInt()) { 
        int x;    //a register for integer
        x = input.nextInt();
        if (x>0) {
            return x;
        } else { 
            System.out.println(" ");
        }
    } else {
        System.out.println("The input:" + side + " not a number");
    }
    return 0; 
}

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

只有x>0时你这个return才有效,其余情况就没有return。你在另外两个else里面也加上一个return

【以下回答由 GPT 生成】

问题的出现是因为你的方法声明为public static int CheckSide(String side),但是在方法体中并没有返回一个int类型的值。Java编译器要求如果一个方法声明了返回类型为int,那么在所有的代码路径中都必须返回一个int类型的值。

要解决这个错误,你可以在方法的最后添加一条return语句来返回一个int类型的值。根据你的代码逻辑,你可以返回一个默认值,例如-1来表示出现了错误。

下面是修改后的代码:

public static int CheckSide(String side) {
    Scanner input = new Scanner(System.in);
    if (input.hasNextInt()) {
        int x; // 用于存储整数的变量
        x = input.nextInt();
        if (x > 0) {
            return x;
        } else {
            System.out.println("");
        }
    } else {
        System.out.println("The input: " + side + " is not a valid integer.");
    }
    return -1; // 添加返回默认值的语句
}

通过这样的修改,你的代码就能成功编译通过了。但是需要注意的是,在方法的最后添加的return -1语句会在发生错误时返回一个默认值,你可以根据实际需求来选择适合的默认值。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^