有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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) 个答案

  1. # 1 楼答案

    使用^{}循环:

    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)
    
  2. # 2 楼答案

    只需将代码放入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,同时)或一些函数检查是否按了键(如escape

    int n = 5;
    
    do
    {
        n ;
        ...
    }
    while(n > 0);
    
  3. # 3 楼答案

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

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