是否可以在 Java 中的方法中声明一个扫描器变量来读取键盘输入?


final int MAX_ROUNDS = 5;
String name1,name1;
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter player1 name: ");
name1 = keyboard.nextLine();
System.out.println("Please enter player2 name: ");
name2 = keyboard.nextLine();
Player player1 = new Player(name1);
Player player2 = new Player(name2);
Dealer dealer = new Dealer();
for(int count = 1; count <=MAX_ROUNDS; count++)
{
System.out.println("------------------");
System.out.ptintf("Round : %d",count);
dealer.rollDice();
player1.makeGuess();
player2.makeGuess();
roundResults();

摘自属于Player 类的 makeGuess 方法。

public void makeGuess()
{
Scanner keyboard = new Scanner(System.in)
System.out.printf("Please guess 'even' or 'odd' "+
"%s.", name);
String answer = keyboard.nextLine();
if(answer.equalsIgnoreCase("even")
guess = "Cho (even)";
else
guess = "Han (odd);
}

当方法执行时,我没有收到任何提示 我不明白为什么我没有为程序包含所有内容。 只是想知道是否有人盯着这段代码可以看到一些明显的东西,否则,我只会拿出猜测提交。

虽然我找不到你的代码有什么问题,但如果我不得不做一个有根据的猜测,dealer.dice(( 方法可能有一个无限循环,这会导致你的整个程序出现故障

您是否尝试打印出从扫描仪获取其值的 name1、name2 等变量以查看它是否正常工作?尝试在将其值设置为 keyboard.nextLine(( 后立即执行此操作。然后,这应该可以让您更好地了解问题所在。

最新更新