我面臨一個問題,如果用戶想再次玩游戲,它不會提示用戶輸入數字,而是會打印出語句,我想知道為什么要這樣做......它完美地工作如果用戶輸入“否”并且游戲將結束,則很好。我將提供一張圖片,以便您可以更好地了解我的問題是什么。 import java.util.Scanner; import java.util.*;public class Moropinzee{ public static void main(String[] args) { int Monkey = 1; int Robot = 2; int Pirate = 3; int Ninja = 4; int Zombie = 5; int player1 = 0; int player2 = 0; String answer; Scanner scan = new Scanner(System.in); System.out.print("Hey, let's play Moropinzee!\n" + "Please enter a move.\n"); do{ System.out.println("Player 1: Enter a number 1-5 for Monkey, Robot, Pirate, Ninja, or Zombie:"); while(!(player1>0) || !(player1<6)) { player1 = scan.nextInt(); if(player1>=6) System.out.println("Invalid choice, Player 1. Enter a number 1-5:"); } Scanner keyboard = new Scanner(System.in); System.out.println("Player 2: Enter a number 1-5 for Monkey, Robot, Pirate, Ninja, or Zombie:"); while(!(player2>0) || !(player2<6)) { player2 = scan.nextInt(); if(player2>=6) System.out.println("Invalid choice, Player 2. Enter a number 1-5:"); } if(player1==(player2)){ System.out.println("Nobody wins!"); } else if (player1==(1)){ if (player2==(4)){ System.out.println("Monkey fools Ninja! Player 1 Wins!"); } }
1 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
問題是在第一次迭代后你永遠不會重置你的變量。在您的循環中,您僅在player1和player2變量不在有效范圍內時才修改它們,它們將在以下迭代中出現。因此,只要它繼續運行,每次迭代都將與第一次相同。嘗試將您的代碼更改為:
player1 = 0;
player2 = 0;
System.out.println("Do you want to play again? Yes or No");
answer = keyboard.next();
添加回答
舉報
0/150
提交
取消