Do-While 循环错误 - 不重复玩游戏

我面临一个问题,如果用户想再次玩游戏,它不会提示用户输入数字,而是会打印出语句,我想知道为什么要这样做......它完美地工作如果用户输入“否”并且游戏将结束,则很好。我将提供一张图片,以便您可以更好地了解我的问题是什么。


 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!"); 

            }      

         }

http://img1.mukewang.com/61822afb0001bf1611160303.jpg

慕标琳琳
浏览 204回答 1
1回答

MMTTMM

问题是在第一次迭代后你永远不会重置你的变量。在您的循环中,您仅在player1和player2变量不在有效范围内时才修改它们,它们将在以下迭代中出现。因此,只要它继续运行,每次迭代都将与第一次相同。尝试将您的代码更改为:player1 = 0;player2 = 0;System.out.println("Do you want to play again? Yes or No");answer = keyboard.next();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java