1

私のメソッド「move」では、ユーザーへの指示を印刷しています。「ゲーム」メソッドでは、「usersMove」メソッドを使用して、ユーザー入力を受け取り、ユーザー入力に応じてプログラムに異なる処理を実行させる必要があります。私はもともと「move」メソッドでユーザー入力をスキャンしましたが、そのメソッドは無効のままにする必要があります。「ゲーム」メソッドでユーザー入力を取得して、その値を他のメソッドに適用できるようにする方法はありますか?

public static void move()
    {
        System.out.print("What do you want to do?");
    }

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

    if (userMove == -1)
    {
        System.exit(0);
    }
}

public static void game()
{
    move();
    Scanner scan = new Scanner(System.in);
    int userMove = scan.nextInt();
}
4

2 に答える 2

0

初期化を内に保ちながらスキャナーをscan静的にしgame()、値が必要な場所で使用します。

于 2013-03-20T11:19:01.643 に答える
0

まず、このような静的メソッドを使用することは、「実際の」プログラムにとっては本当に悪い習慣ですが、これはJavaの学習演習であると思います...将来このようにする場合は、覚えておいてください。 'おそらくそれを間違ってやっています。

メソッドuserMoveが次のように、静的にします。

private static int userMove = -2; // or whatever value to indicate there's no move

次に、同じクラスの静的メソッドで使用します。

public static void usersMove(String playerName, int gesture)
{
    // just for fun, to catch bugs
    if (userMove < -1) {
        throw new IllegalStateException("illegal userMove value " + userMove);
    }

    if (userMove == -1)
    {
        System.exit(0);
    }
}

public static void game()
{
    move();
    Scanner scan = new Scanner(System.in);
    userMove = scan.nextInt();
}

たとえば、これstaticを読んでJavaについて学びましょう。

于 2013-03-20T11:23:33.977 に答える