如何根据特定情况重复我的程序?

时间:2015-10-07 00:09:38

标签: java loops repeat

import java.util.Scanner;

public class MyFirstGame {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("Please Enter A Number: ");
        double s = scanner.nextDouble();
        double randomNumber = Math.random();
        double realNumber = randomNumber*10;
        double realerNumber = Math.round(realNumber);
        System.out.println(realerNumber);

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

所以我要做的就是做一个游戏"对于我的Java类。我生成一个1到10之间的随机数,用户必须输入一个数字,如果输入和随机数相同,他们就会赢。"如果他们输了,他们会再试一次......?首先,我做了所有必要的扫描仪,我甚至不完全理解。我刚刚复制了教授。所以程序说要输入一个数字,程序会生成一个介于0.0和1.0之间的数字。我将该数字乘以10,使其在1到10之间。然后我将数字四舍五入到最接近的整数。如果输入与此数字匹配,则程序表示您获胜。如果没有,它会说再试一次。

问题是如何在没有用户使用cmd重启程序的情况下重复程序?我需要重复输入,随机数生成器,然后重复结果。我需要做什么?另外,我的节目怎么样?我的第二个重要人物......是的,对...大。但严重的是,我怎样才能使它变得不那么复杂或任何改进它的东西。感谢。

3 个答案:

答案 0 :(得分:2)

使用while循环:

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!");

已经有class生成随机数,您可以使用它:

// 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)

答案 1 :(得分:1)

只需将代码置于 do-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);

someCondition可以是一个计数器(如果您想要 n 次,只需将计数器设置为 n ,并在每次循环迭代时减少它,然后检查如果它是0 in while)或某些功能检查按键是否被按下(如逃避

int n = 5;

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

答案 2 :(得分:-1)

这将永远运行,但这是第一条评论中提到的想法

    ...
    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
    ...