Java初学者-尝试让玩家退出游戏

Java初学者-尝试让玩家退出游戏,java,loops,do-while,Java,Loops,Do While,我是一个猜游戏的初学者,我试图让玩家通过猜-1退出游戏。目前,如果我输入-1,它表示太低,并要求我继续猜测,玩家不能退出游戏,直到他们猜到数字 public static void main(String[] args) { Scanner input = new Scanner(System.in); char choice; do { int randomNum = (int) (Math.random() * 100 + 1);

我是一个猜游戏的初学者,我试图让玩家通过猜-1退出游戏。目前,如果我输入-1,它表示太低,并要求我继续猜测,玩家不能退出游戏,直到他们猜到数字

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    char choice;
    
    do {
        int randomNum = (int) (Math.random() * 100 + 1);
        int guess = 0;

        while (guess != randomNum) {

            System.out.println("Guess a number between 1-100");
            guess = scan.nextInt();

            if (guess > randoomNum) {
                System.out.println("Too high.");
            }
            else if (guess < randoomNum) {
                System.out.println("Too low.");
            }
            else if (guess > 0) {
                System.exit(0);
                System.out.println("GAME OVER");
                System.out.println("the number was " + randomNum + ".");
            }
            else {
                System.out.println("Correct! Well done!");
            }
        }
    
        System.out.println("\nPlay again? (Y/N)");
        choice = scan.next() .charAt(0);

    
    } while (choice == 'Y' | choice =='y');

    
    System.out.println("GAME OVER");
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符选择;
做{
int randomNum=(int)(Math.random()*100+1);
int guess=0;
while(猜测!=randomNum){
System.out.println(“猜测1-100之间的数字”);
guess=scan.nextInt();
如果(猜测>随机数){
System.out.println(“太高”);
}
否则如果(猜测0){
系统出口(0);
System.out.println(“游戏结束”);
System.out.println(“数字为“+randomNum+”);
}
否则{
System.out.println(“正确!做得好!”);
}
}
System.out.println(“\N再次显示?(Y/N)”);
choice=scan.next().charAt(0);
}while(choice='Y'| choice='Y');
System.out.println(“游戏结束”);
}

现有代码需要稍微修改:在与
randomNum
进行比较之前,应检查带有exit的条件

有待解决的其他问题:

  • 对于
    扫描仪
    实例,使用
    输入
  • 执行
    系统。打印再见消息后退出
扫描仪输入=新扫描仪(System.in);
字符选择;
做{
int randomNum=(int)(Math.random()*100+1);
int guess=0;
while(猜测!=randomNum){
System.out.println(“猜一个介于1-100之间的数字,或-1退出”);
guess=input.nextInt();
如果(猜测==-1){
System.out.println(“游戏结束”);
System.out.println(“数字为“+randomNum+”);
系统出口(0);
}
如果(猜测>随机数){
System.out.println(“太高”);
}
else if(猜测<随机数){
System.out.println(“太低”);
}
否则{
System.out.println(“正确!做得好!”);
}
}
System.out.println(“\N再次显示?(Y/N)”);
choice=input.next().charAt(0);
}while(choice='Y'| choice='Y');
System.out.println(“游戏结束”);

现有代码需要稍微修改:在与
randomNum
进行比较之前,应检查带有exit的条件

有待解决的其他问题:

  • 对于
    扫描仪
    实例,使用
    输入
  • 执行
    系统。打印再见消息后退出
扫描仪输入=新扫描仪(System.in);
字符选择;
做{
int randomNum=(int)(Math.random()*100+1);
int guess=0;
while(猜测!=randomNum){
System.out.println(“猜一个介于1-100之间的数字,或-1退出”);
guess=input.nextInt();
如果(猜测==-1){
System.out.println(“游戏结束”);
System.out.println(“数字为“+randomNum+”);
系统出口(0);
}
如果(猜测>随机数){
System.out.println(“太高”);
}
else if(猜测<随机数){
System.out.println(“太低”);
}
否则{
System.out.println(“正确!做得好!”);
}
}
System.out.println(“\N再次显示?(Y/N)”);
choice=input.next().charAt(0);
}while(choice='Y'| choice='Y');
System.out.println(“游戏结束”);

紧跟在
guess=scan.nextInt()之后添加<代码>如果(猜测==-1)中断
@johnnymop,它似乎应该打破嵌套循环,或者可能是,
System.exit()
可能是used@AlexRudenko好啊然后他们应该将
else if(guess>0)
块中的内容移动到我有
break
的地方。所以,在他们得到用户输入后,真的只需将整个块向上移动。如果(猜测<0)
无论如何,它应该是
else。打字错误?@Johnnympp谢谢!在最后一个while中,应该在
guess=scan.nextInt()之后使用逻辑or(“| |”)而不是按位or添加<代码>如果(猜测==-1)中断
@johnnymop,它似乎应该打破嵌套循环,或者可能是,
System.exit()
可能是used@AlexRudenko好啊然后他们应该将
else if(guess>0)
块中的内容移动到我有
break
的地方。所以,在他们得到用户输入后,真的只需将整个块向上移动。如果(猜测<0)
无论如何,它应该是
else。打字错误?@Johnnympp谢谢!在最后一个while中,应该使用逻辑or(“| |”)而不是按位or。