Java 随机猜测游戏无限循环
对于我的Java类,我应该做一个随机数字猜测游戏。我被困在过去几天我创建的一个循环中。程序的输出总是一个无限循环,我不明白为什么。非常感谢您的帮助Java 随机猜测游戏无限循环,java,loops,infinite,Java,Loops,Infinite,对于我的Java类,我应该做一个随机数字猜测游戏。我被困在过去几天我创建的一个循环中。程序的输出总是一个无限循环,我不明白为什么。非常感谢您的帮助 /* This program will generate a random number. It will ask the user to guess what number was generated and say if the guess is too high or low. */ import java.util.Sca
/*
This program will generate a random number.
It will ask the user to guess what number was generated and say
if the guess is too high or low.
*/
import java.util.Scanner;
import java.util.Random;
public class RandomNumGame {
public static void main(String[] args) {
Random rand = new Random();
Scanner input = new Scanner(System.in);
int randNum = rand.nextInt(20);
System.out.println("Number is : " + randNum);
int userGuess = 0;
int success = 0;
System.out.println("Guess the number: ");
userGuess = input.nextInt();
while(success == 0)
{
if(userGuess > randNum){
System.out.println("Too high");
}
else if(userGuess < randNum){
System.out.println("Too high");
}
else{
System.out.println("Something is very wrong.");
}
}
if(userGuess == randNum){
success++;
System.out.println("You got it! Play again?");
}
}
}
/*
这个程序将生成一个随机数。
它将要求用户猜测生成的数字并说出
如果猜测过高或过低。
*/
导入java.util.Scanner;
导入java.util.Random;
公共类随机numgame{
公共静态void main(字符串[]args){
Random rand=新的Random();
扫描仪输入=新扫描仪(System.in);
int randNum=rand.nextInt(20);
System.out.println(“编号为:“+randNum”);
int userGuess=0;
int成功=0;
System.out.println(“猜数字:”);
userGuess=input.nextInt();
while(成功==0)
{
if(userGuess>randNum){
System.out.println(“过高”);
}
else if(userGuess
您将检查输入是否等于while之外的数字的if置于while之外,因此循环永远不会结束
以下是修复代码:
import java.util.Scanner;
import java.util.Random;
public class RandomNumGame {
public static void main(String[] args) {
Random rand = new Random();
Scanner input = new Scanner(System.in);
int randNum = rand.nextInt(20);
System.out.println("Number is : " + randNum);
int userGuess = 0;
int success = 0;
System.out.println("Guess the number: ");
userGuess = input.nextInt();
while(success == 0) {
if(userGuess > randNum) {
System.out.println("Too high");
} else if(userGuess < randNum) {
System.out.println("Too high");
} else if(userGuess == randNum) {
success++;
System.out.println("You got it! Play again?");
} else {
System.out.println("Something is very wrong.");
}
}
}
}
import java.util.Scanner;
导入java.util.Random;
公共类随机numgame{
公共静态void main(字符串[]args){
Random rand=新的Random();
扫描仪输入=新扫描仪(System.in);
int randNum=rand.nextInt(20);
System.out.println(“编号为:“+randNum”);
int userGuess=0;
int成功=0;
System.out.println(“猜数字:”);
userGuess=input.nextInt();
while(成功==0){
if(userGuess>randNum){
System.out.println(“过高”);
}else if(userGuess
我修好了!我在每个失败条件之后添加了中断,这样我就不会得到一个无限循环。我早些时候试过,但一直出错
这是完整的代码:
import java.util.Scanner;
import java.util.Random;
public class RandomNumGame {
public static void main(String[] args) {
Random rand = new Random();
Scanner input = new Scanner(System.in);
int randNum = rand.nextInt(20);
System.out.println("Number is : " + randNum);
int userGuess = 0;
boolean success = false;
System.out.println("Guess the number: ");
userGuess = input.nextInt();
input.close();
while(success == false){
if(userGuess > randNum) {
System.out.println("Too high,try again");
break;
} else if(userGuess < randNum) {
System.out.println("Too low");
break;
} else if(userGuess == randNum) {
success = true;
System.out.println("You got it! Play again?");
} else {
System.out.println("Something is very wrong.");
}
}
}
}
import java.util.Scanner;
导入java.util.Random;
公共类随机numgame{
公共静态void main(字符串[]args){
Random rand=新的Random();
扫描仪输入=新扫描仪(System.in);
int randNum=rand.nextInt(20);
System.out.println(“编号为:“+randNum”);
int userGuess=0;
布尔成功=假;
System.out.println(“猜数字:”);
userGuess=input.nextInt();
input.close();
while(success==false){
if(userGuess>randNum){
System.out.println(“太高,请重试”);
打破
}else if(userGuess
在第一次评估后,您永远不会更新userGuess
。而success
在循环中不会发生变化,因此一旦代码进入,它就永远无法退出,因为循环条件永远不会变为false
。您的解决方案使成功条件起作用,但过高和过低的选项仍然会导致无限循环。谢谢你的帮助!