Java 嵌套while循环赢了';不要要求再次正确运行程序
嗯,我有一个硬件问题,我必须只使用嵌套循环,而不使用循环。所以基本上我有代码,但它不会运行循环的一部分,它一直说是或否。它应该是这样的 猜猜秘密号码 输入密码的最大值:10 已选择一个新的密码 输入猜测:3 太低;再试一次 输入猜测:8 太低;再试一次 输入猜测:9 太低;再试一次 输入猜测:10 你猜了4次就赢了 再来一次?(是/否)是 已选择一个新的密码 输入猜测:7 过高;再试一次 输入猜测:3太低;再试一次 输入猜测:5 你猜了三次就赢了 再来一次?(是/否)否Java 嵌套while循环赢了';不要要求再次正确运行程序,java,output,nested-loops,Java,Output,Nested Loops,嗯,我有一个硬件问题,我必须只使用嵌套循环,而不使用循环。所以基本上我有代码,但它不会运行循环的一部分,它一直说是或否。它应该是这样的 猜猜秘密号码 输入密码的最大值:10 已选择一个新的密码 输入猜测:3 太低;再试一次 输入猜测:8 太低;再试一次 输入猜测:9 太低;再试一次 输入猜测:10 你猜了4次就赢了 再来一次?(是/否)是 已选择一个新的密码 输入猜测:7 过高;再试一次 输入猜测:3太低;再试一次 输入猜测:5 你猜了三次就赢了 再来一次?(是/否)否 publicstatic
publicstaticvoidmain(字符串arg[])
{
int guess=0,max,guess=0;
字符串响应;
扫描仪输入=新扫描仪(System.in);
System.out.println(“猜测密码”);
System.out.println(“输入密码的最大值:”);
max=input.nextInt();
整数=(int)(Math.random()*max)+1;
while(true)
{
System.out.println(“已选择新的密码”);
while(猜测!=数字)
{
System.out.println(“输入猜测”);
guess=input.nextInt();
猜测++;
如果(猜测数字)
{
System.out.println(“高;再试一次”);
}
}
System.out.println(“您在“+猜测+”!”)中获胜;
系统输出打印(“\N再次显示?(Y/N)”);
response=input.next();
if(响应等信号情况(“y”))
{
继续;
}
其他的
{
打破
}
}
input.close();
}
(这就是我得到的)
输入密码的最大值:
五,
已选择一个新的密码
输入猜测
四,
高;再试一次
输入猜测
三,
你在2分钟内赢了
再来一次?(是/否)是
已选择一个新的密码
你在2分钟内赢了
再来一次?(是/否)是
已选择一个新的密码
你在2分钟内赢了
再来一次?(是/否)
(因此循环不会再次调用猜测)您需要重新初始化猜测和数字来开始新一轮游戏 向下移动这两条线,在外部的内部,同时循环:
int numbers=(int) (Math.random()* max) + 1;
int guess = 0, guesses = 0;
您需要重新初始化猜测和数字,以开始新一轮游戏 向下移动这两条线,在外部的内部,同时循环:
int numbers=(int) (Math.random()* max) + 1;
int guess = 0, guesses = 0;
你已经很接近了,但是你需要在每次获胜后重置你的重要值。你可以通过简单地将它们移动到你的外巢循环中来实现这一点,这样每当内巢循环破裂时,它们就会重置为你在每轮猜谜游戏之前想要的状态。请看这里:
public static void main(String arg[])
{
Scanner input= new Scanner(System.in);
while(true)
{
int guess = 0,max,guesses = 0;
String response;
System.out.println("Guess the secret number\n");
System.out.println("Enter maximum value for secret number: ");
max=input.nextInt();
int numbers=(int) (Math.random()* max) + 1;
System.out.println("A new secret number has been choosen.");
while (guess!=numbers)
{
System.out.println("Enter guess");
guess=input.nextInt();
guesses++;
if (guess<numbers)
{
System.out.println("Two low; Try again ");
}
else if (guess>numbers)
{
System.out.println("To high; Try again");
}
}
System.out.println("You won in " + guesses + "!");
System.out.print("\nPlay again? (Y/N)");
response = input.next();
if(response.equalsIgnoreCase("y"))
{
continue;
}
else
{
break;
}
}
input.close();
}
publicstaticvoidmain(字符串arg[])
{
扫描仪输入=新扫描仪(System.in);
while(true)
{
int guess=0,max,guess=0;
字符串响应;
System.out.println(“猜测密码”);
System.out.println(“输入密码的最大值:”);
max=input.nextInt();
整数=(int)(Math.random()*max)+1;
System.out.println(“已选择新的密码”);
while(猜测!=数字)
{
System.out.println(“输入猜测”);
guess=input.nextInt();
猜测++;
如果(猜测数字)
{
System.out.println(“高;再试一次”);
}
}
System.out.println(“您在“+猜测+”!”)中获胜;
系统输出打印(“\N再次显示?(Y/N)”);
response=input.next();
if(响应等信号情况(“y”))
{
继续;
}
其他的
{
打破
}
}
input.close();
}
您已接近成功,但每次获胜后都需要重置重要值。你可以通过简单地将它们移动到你的外巢循环中来实现这一点,这样每当内巢循环破裂时,它们就会重置为你在每轮猜谜游戏之前想要的状态。请看这里:
public static void main(String arg[])
{
Scanner input= new Scanner(System.in);
while(true)
{
int guess = 0,max,guesses = 0;
String response;
System.out.println("Guess the secret number\n");
System.out.println("Enter maximum value for secret number: ");
max=input.nextInt();
int numbers=(int) (Math.random()* max) + 1;
System.out.println("A new secret number has been choosen.");
while (guess!=numbers)
{
System.out.println("Enter guess");
guess=input.nextInt();
guesses++;
if (guess<numbers)
{
System.out.println("Two low; Try again ");
}
else if (guess>numbers)
{
System.out.println("To high; Try again");
}
}
System.out.println("You won in " + guesses + "!");
System.out.print("\nPlay again? (Y/N)");
response = input.next();
if(response.equalsIgnoreCase("y"))
{
continue;
}
else
{
break;
}
}
input.close();
}
publicstaticvoidmain(字符串arg[])
{
扫描仪输入=新扫描仪(System.in);
while(true)
{
int guess=0,max,guess=0;
字符串响应;
System.out.println(“猜测密码”);
System.out.println(“输入密码的最大值:”);
max=input.nextInt();
整数=(int)(Math.random()*max)+1;
System.out.println(“已选择新的密码”);
while(猜测!=数字)
{
System.out.println(“输入猜测”);
guess=input.nextInt();
猜测++;
如果(猜测数字)
{
System.out.println(“高;再试一次”);
}
}
System.out.println(“您在“+猜测+”!”)中获胜;
系统输出打印(“\N再次显示?(Y/N)”);
response=input.next();
if(响应等信号情况(“y”))
{
继续;
}
其他的
{
打破
}
}
input.close();
}