Java 带有用户输入代码的随机数生成器不';我不能正常工作
我的另一个初学者问题。我事先道歉,但你能帮我一下吗?所以我想创建这个随机数生成器,它将生成数字1-100并请求用户输入。用户应该猜测,直到最终得到正确的数字。最后,程序应打印“您从xx尝试中猜到的”。所以问题是,当我测试代码时,有两次代码运行正确,另外两次错误(尝试次数显示错误)。现在我也觉得代码可以用更好的方式编写,但不知道具体如何编写。谢谢Java 带有用户输入代码的随机数生成器不';我不能正常工作,java,random,Java,Random,我的另一个初学者问题。我事先道歉,但你能帮我一下吗?所以我想创建这个随机数生成器,它将生成数字1-100并请求用户输入。用户应该猜测,直到最终得到正确的数字。最后,程序应打印“您从xx尝试中猜到的”。所以问题是,当我测试代码时,有两次代码运行正确,另外两次错误(尝试次数显示错误)。现在我也觉得代码可以用更好的方式编写,但不知道具体如何编写。谢谢 import java.util.Scanner; import java.util.Random; public class JavaApplicat
import java.util.Scanner;
import java.util.Random;
public class JavaApplication2018
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter a number, please");
int attempt = input.nextInt();
Random dice = new Random();
int number;
number = dice.nextInt(100) + 1;
int counter = 0;
while (number > attempt)
{
System.out.println("I imagined a bigger number. Guess again!");
attempt = input.nextInt();
counter++;
}
while (number < attempt)
{
System.out.println("I imagined a smaller number. Guess again!");
attempt = input.nextInt();
counter++;
}
if (number == attempt)
{
counter++;
}
System.out.println("You guessed from " + counter +". attempt" );
}
}
import java.util.Scanner;
导入java.util.Random;
公共类JavaApplication2018
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“请输入一个数字”);
int trunt=input.nextInt();
随机骰子=新随机();
整数;
数字=骰子。下一个骰子(100)+1;
int计数器=0;
while(数字>尝试)
{
System.out.println(“我想象了一个更大的数字,再猜一次!”);
尝试=输入.nextInt();
计数器++;
}
while(次数<尝试次数)
{
System.out.println(“我想象了一个更小的数字,再猜一次!”);
尝试=输入.nextInt();
计数器++;
}
如果(次数==尝试次数)
{
计数器++;
}
System.out.println(“您从“+counter+”.trunt”猜到的”);
}
}
用户猜测一次,如果它大于随机数,那么它将再次迭代,如果不是,那么它将在第二次迭代,如果猜测再次大于尝试,那么这将是不好的,代码将在没有您想要的结果的情况下结束
while (number > attempt || number<attempt)
{
if(number>attempt){
System.out.println("I imagined a bigger number. Guess again!");}
else
System.out.println("I imagined a smaller number. Guess again!");
attempt = input.nextInt();
counter++;
}
if (number == attempt)
{
counter++;
}
System.out.println("You guessed from " + counter +". attempt" );
}
while(数字>尝试| |数字清空){
System.out.println(“我想象了一个更大的数字。再猜一次!”);}
其他的
System.out.println(“我想象了一个更小的数字,再猜一次!”);
尝试=输入.nextInt();
计数器++;
}
如果(次数==尝试次数)
{
计数器++;
}
System.out.println(“您从“+counter+”.trunt”猜到的”);
}
这段代码应该更好用户猜测一次,如果它大于随机数,那么它将再次迭代,如果不是,它将在第二次迭代,如果猜测再次大于尝试,那么这将是不好的,代码将在没有您想要的结果的情况下结束
while (number > attempt || number<attempt)
{
if(number>attempt){
System.out.println("I imagined a bigger number. Guess again!");}
else
System.out.println("I imagined a smaller number. Guess again!");
attempt = input.nextInt();
counter++;
}
if (number == attempt)
{
counter++;
}
System.out.println("You guessed from " + counter +". attempt" );
}
while(数字>尝试| |数字清空){
System.out.println(“我想象了一个更大的数字。再猜一次!”);}
其他的
System.out.println(“我想象了一个更小的数字,再猜一次!”);
尝试=输入.nextInt();
计数器++;
}
如果(次数==尝试次数)
{
计数器++;
}
System.out.println(“您从“+counter+”.trunt”猜到的”);
}
此代码应该更好首先,您不需要两个
,而
。您可以在一个while
中将所有内容放在一起,然后在其中放入if
,如下所示:
while(number ! attempt){
if(number > attempt)
...
else
...
}
System.out.println("good gusse" );
其次,在我能够帮助您修复错误之前,我需要更多有关错误的详细信息。首先,您不需要两个
,而。您可以在一个while
中将所有内容放在一起,然后在其中放入if
,如下所示:
while(number ! attempt){
if(number > attempt)
...
else
...
}
System.out.println("good gusse" );
其次,在我能够帮助您修复错误之前,我需要更多关于错误的详细信息。用户引入第一个输入,然后它进入一个无限循环,在这个循环中,用户将被要求输入数字,直到最后猜出值为止。此代码只检查用户引入的值的最大值的2倍。如果有帮助,请选择“作为答案”:d
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number, please");
int attempt = input.nextInt();
int number;
number = new Random().nextInt(101);
int counter = 1;
while (true) {
attempt = input.nextInt();
counter++;
if (number > attempt) {
System.out.println("I imagined a bigger number. Guess again!");
}else if (number < attempt) {
System.out.println("I imagined a smaller number. Guess again!");
}else {
System.out.println("You guessed from " + counter + ". attempt");
break;
}
}
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“请输入一个数字”);
int trunt=input.nextInt();
整数;
数字=新随机数().nextInt(101);
int计数器=1;
while(true){
尝试=输入.nextInt();
计数器++;
如果(次数>尝试次数){
System.out.println(“我想象了一个更大的数字,再猜一次!”);
}否则如果(次数<尝试次数){
System.out.println(“我想象了一个更小的数字,再猜一次!”);
}否则{
System.out.println(“您从“+counter+”.trunt”猜到的”);
打破
}
}
}
用户引入第一个输入,然后进入一个无限循环,在该循环中,用户将被要求输入数字,直到最终猜出值为止。此代码只检查用户引入的值的最大值的2倍。如果有帮助,请选择“作为答案”:d
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number, please");
int attempt = input.nextInt();
int number;
number = new Random().nextInt(101);
int counter = 1;
while (true) {
attempt = input.nextInt();
counter++;
if (number > attempt) {
System.out.println("I imagined a bigger number. Guess again!");
}else if (number < attempt) {
System.out.println("I imagined a smaller number. Guess again!");
}else {
System.out.println("You guessed from " + counter + ". attempt");
break;
}
}
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“请输入一个数字”);
int trunt=input.nextInt();
整数;
数字=新随机数().nextInt(101);
int计数器=1;
while(true){
尝试=输入.nextInt();
计数器++;
如果(次数>尝试次数){
System.out.println(“我想象了一个更大的数字,再猜一次!”);
}否则如果(次数<尝试次数){
System.out.println(“我想象了一个更小的数字,再猜一次!”);
}否则{
System.out.println(“您从“+counter+”.trunt”猜到的”);
打破
}
}
}
太好了,非常感谢!你的循环看起来好多了,它工作得很好,谢谢,很高兴它工作了!你理解逻辑错误了吗?因为如果有必要的话,我很乐意再次解释我的理解。我想我不应该有两个单独的while循环,因为计算机会检查第一个循环,如果它是真的,就再试一次,如果不是,就检查另一个,然后停止。不返回到第一个,而是停止。这就是错误所在,对吧?你能帮我弄清楚一些事情吗,我刚刚想我还有别的事要做