3

あるメソッドからユーザー入力を取得して、別のメソッドで使用しようとしています。"userMove" が int 型として定義されているため、結果の型が void であるメソッドから値を返すことができないというエラーについて混乱しています。

public static void move()
{
    System.out.println("What do you want to do?");
    Scanner scan = new Scanner(System.in);
    int userMove = scan.nextInt();
    return userMove;
}

public static void usersMove(String playerName, int gesture)
{
    int userMove = move();

    if (userMove == -1)
    {
        break;
    }
4

2 に答える 2

9

を返すように変更voidするだけです。intint

public static int move()
{
    System.out.println("What do you want to do?");
    Scanner scan = new Scanner(System.in);
    int userMove = scan.nextInt();
    return userMove;
}

voidメソッドとは、何も返さない (つまり、return ステートメントがない) ことを意味し、それ以外の場合はvoidreturn が必要です。

于 2013-03-20T08:17:52.973 に答える
4

としてマークされているメソッドはvoid、何も返さないことを意味します。procedureではなくと見なすことができますfunction

メソッド シグネチャを に変更public static int move()すると、問題が解決するはずです。メソッドfunctionは、戻り値を持つ を表すようになります。

このOracle チュートリアルでは、いくつかの有用な情報を提供する必要があります。

于 2013-03-20T08:18:49.110 に答える