Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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_Loops_Repeat - Fatal编程技术网

Java 如何根据特定情况使程序重复?

Java 如何根据特定情况使程序重复?,java,loops,repeat,Java,Loops,Repeat,所以我要做的是为我的Java类制作一个“游戏”。我已经生成了一个介于1和10之间的随机数,用户必须输入一个数字,如果输入和随机数相同,他们“赢”。如果他们输了,他们再试一次。。。?首先,我做了所有我不完全理解的必要的扫描器。我只是抄袭了教授。所以程序说输入一个数字,程序生成一个介于0.0和1.0之间的数字。我把这个数字乘以10,使它在1和10之间。然后我将数字四舍五入到最接近的整数。如果输入与这个数字匹配,程序会说你赢了。如果没有,它会说再试一次 问题是,我如何让程序重复自己,而用户不必用cmd

所以我要做的是为我的Java类制作一个“游戏”。我已经生成了一个介于1和10之间的随机数,用户必须输入一个数字,如果输入和随机数相同,他们“赢”。如果他们输了,他们再试一次。。。?首先,我做了所有我不完全理解的必要的扫描器。我只是抄袭了教授。所以程序说输入一个数字,程序生成一个介于0.0和1.0之间的数字。我把这个数字乘以10,使它在1和10之间。然后我将数字四舍五入到最接近的整数。如果输入与这个数字匹配,程序会说你赢了。如果没有,它会说再试一次

问题是,我如何让程序重复自己,而用户不必用cmd重新启动程序?我需要重复输入,随机数生成器,然后是结果。我需要做什么?还有,我的节目怎么样?我的第二个大…是的,对…大。但说真的,我怎样才能让它变得不那么复杂,或者做些什么来改进它。谢谢。

使用循环:

已经有了生成随机数的方法,您可以使用它:

long realerNumber = Math.round(realNumber);
// first guess
long guess = scanner.nextLong();
while (guess != realerNumber) {
    System.out.println("Try Again...");
    // guess again
    guess = scanner.nextInt();
}

System.out.println("You Win!");

只需将代码放入do while循环中

// TODO: move to constant
int MAX = 10;
// nextInt(int n) generates a number in the range [0, n)
int randomNumber = new Random().nextInt(MAX + 1)
例如,
someCondition
可以是一个计数器(如果您想播放n次,只需将计数器设置为n,并在每次循环迭代中减小它,然后在while中检查它是否为0)或一些函数检查是否按下某个键(如escape


这将永远持续下去,但这是第一条评论中提到的想法

int n = 5;

do
{
    n--;
    ...
}
while(n > 0);

为什么不
while(true)
?:-)你在开玩笑吗-1.哎呀。为什么不
while(1==1)
?我没有-1你,尽管你的程序并没有完全按照要求去做(它一遍又一遍地生成新的数字,而不是坚持一个。这对这个用例来说并不重要,但应该注意)。至于为什么不
while(1==1)
,原因与你不会使用
while相同((1>0&&2+3+4+5/2)| | 0!=0)
…这一直是
真的
。谢谢。我不得不在while语句区域添加一些内容,但你让我开始了。我得到了我想要的最终结果,我很满意。
Scanner scanner = new Scanner(System.in);

do
{
    System.out.println("Please Enter A Number: ");
    double s = scanner.nextDouble();

    double realerNumber = Math.round( Math.random() * 10 );

    System.out.println(realerNumber);

    if(s==realerNumber) {
        System.out.println("You Win!");
    } else {
        System.out.println("Try Again...");
    }
}
while(someCondition);
int n = 5;

do
{
    n--;
    ...
}
while(n > 0);
    ...
    Scanner scanner = new Scanner(System.in);
    while(true){ // add this after Scanner ... declaration
       ...
        } // end of existing else block
    } // end of while loop, so add this single brace
    ...