-1

试图弄清楚这一点。我创建了一个方法来检查用户是否使用 catch 块输入了一个整数。

该方法显然是要求返回语句,但无论我把它放在哪里都不起作用。有人可以提供任何建议吗?

public class Week5 {

    public static void main(String[] args) {
        Scanner myKeyboard = new Scanner(System.in);
        inputInt();
        inputDouble();
    }

    public static int inputInt(){
        Scanner myKeyboard = new Scanner(System.in);

        System.out.println("Enter number:");

        int num;

        boolean carryOn = true;

        while (carryOn == true) { 
            {
                try { 
                    num = myKeyboard.nextInt();

                    carryOn = false;
                }
                catch (Exception e) {System.out.println ("Integers only, try again" ); 

                myKeyboard.next();
                return num;    
            }           
        }
    }
}
4

1 回答 1

5

carryOn== false 时,它​​将转到您的方法的底部,并且那里没有 return 语句。您需要在底部有一个 return 声明。

下面是对错误的解释:如果一个函数说它返回一些东西(int在这种情况下是 an),这意味着它可以采用的每条路径都必须返回一个int. 您缺少其中一个编译时错误的路径。

于 2013-11-04T18:37:36.333 回答