为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标琳琳 2021-11-03 14:23:19
我面临一个问题,如果用户想再次玩游戏,它不会提示用户输入数字,而是会打印出语句,我想知道为什么要这样做......它完美地工作如果用户输入“否”并且游戏将结束,则很好。我将提供一张图片,以便您可以更好地了解我的问题是什么。 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();


查看完整回答
反对 回复 2021-11-03
  • 1 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信