1

在我的“移动”方法中,我正在向用户打印说明。在“游戏”方法中,我需要获取用户输入并使用“usersMove”方法使程序根据用户输入执行不同的操作。我最初在“移动”方法中扫描了我的用户输入,但该方法必须保持无效。有没有办法在“游戏”方法中获取用户输入,以便我可以将其值应用于其他方法?

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();
}

阅读例如this以了解staticJava。

于 2013-03-20T11:23:33.977 回答