-1

これを理解しようとしています。ユーザーが catch ブロックを使用して整数を入力したかどうかを確認するメソッドを作成しました。

メソッドは明らかに return ステートメントを要求していますが、どこに置いても機能しません。誰でもアドバイスを提供できますか?

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

== false の場合carryOn、メソッドの最後に移動し、return ステートメントはありません。下部に return ステートメントが必要です。

エラーの説明は次のとおりです。関数が何か (この場合は an) を返すと言う場合、関数intが取ることができるすべてのパスは を返さなければならないことを意味しますint。コンパイル時エラーであるこれらのパスの 1 つがありません。

于 2013-11-04T18:37:36.333 に答える