Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有用户输入代码的随机数生成器不';我不能正常工作_Java_Random - Fatal编程技术网

Java 带有用户输入代码的随机数生成器不';我不能正常工作

Java 带有用户输入代码的随机数生成器不';我不能正常工作,java,random,Java,Random,我的另一个初学者问题。我事先道歉,但你能帮我一下吗?所以我想创建这个随机数生成器,它将生成数字1-100并请求用户输入。用户应该猜测,直到最终得到正确的数字。最后,程序应打印“您从xx尝试中猜到的”。所以问题是,当我测试代码时,有两次代码运行正确,另外两次错误(尝试次数显示错误)。现在我也觉得代码可以用更好的方式编写,但不知道具体如何编写。谢谢 import java.util.Scanner; import java.util.Random; public class JavaApplicat

我的另一个初学者问题。我事先道歉,但你能帮我一下吗?所以我想创建这个随机数生成器,它将生成数字1-100并请求用户输入。用户应该猜测,直到最终得到正确的数字。最后,程序应打印“您从xx尝试中猜到的”。所以问题是,当我测试代码时,有两次代码运行正确,另外两次错误(尝试次数显示错误)。现在我也觉得代码可以用更好的方式编写,但不知道具体如何编写。谢谢

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循环,因为计算机会检查第一个循环,如果它是真的,就再试一次,如果不是,就检查另一个,然后停止。不返回到第一个,而是停止。这就是错误所在,对吧?你能帮我弄清楚一些事情吗,我刚刚想我还有别的事要做