java - 创建一个java程序猜谜游戏

标签 java

编写一个程序来生成 1 – 100 之间的随机数并将其保存为 secret 数字。然后程序将检查用户是否可以猜出 secret 数字。用户可以继续猜测数字,直到找到数字为止,或者用户可以输入 0,这将终止程序。

每次用户进行猜测时,程序都会报告如下:

  1. 太高或太低(超过 30 折)
  2. 高或低(相差 10 到 30 分)
  3. 有点高或有点低(折扣少于 10 分)

如果 secret 数字是 74 并且用户输入 26,程序将打印“Way Too Low”。如果用户随后输入 65,则程序将打印“A Little Low

我被 if 语句困住了,也许我的结构不正确。我不确定。

import java.util.Scanner;
public class SecretNumber {
    public static void main(String[] args){
        int random1, answer;
        Scanner input = new Scanner(System.in);

        random1 = (int)(Math.random()*10);
        System.out.print(random1);

        System.out.println("Guess the number");
        answer = input.nextInt();

        while(answer != 0) {

            if (answer > (random1 + 30)){

                System.out.println("Way to high");
            }
            else if ( answer > ( random1 - 30)){

                System.out.println("Way to low");

            }
            else if (answer > random1 + 10 && answer < random1 + 30){

                System.out.println("High");

            }
            else if (answer > random1 - 10 && answer < random1 - 30 ){

                System.out.println("Low");

            }
            else if ( answer > random1 + 10){

                System.out.println("A little high");
            }
            else if ( answer < random1 - 10){

                System.out.println("A little low");

            }
            else if ( answer == random1){

                System.out.println("That is correct");
                System.exit(0);
            }
            else {
                System.out.println("Guess the number");
                answer = input.nextInt();
            }
        }
    }
}

最佳答案

将最终 else block 中获取输入的行移至 else 后面(但仍在循环内),它将正常工作。

您想要这样做的原因是因为它进入了再次猜测条件之一(例如,“太低了!”),然后永远不会进入最终的 else,从而导致无限循环。

    while (answer !=0){

        // ommitted

        else if ( answer == random1){

            System.out.println("That is correct");
            System.exit(0);
        }

        System.out.println("Guess the number");
        answer = input.nextInt();
    }

关于java - 创建一个java程序猜谜游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350022/

相关文章:

java - 2.1.7版本的Maven配置问题-Spring Boot

java - ArrayList 中的每个 String[] 都具有相同的值

java内存不足然后退出

java - Maven 究竟如何找到 Artifact 的最新版本?

java - 保存到数据库时单次省略字段

java - 如何在本地开发环境中从 App Engine 访问 Google Cloud Storage?

java - 恩弗斯添加用户信息

java - 签名后更新 token 中的 jwt 范围

java - Android ListView 点击时抛出 NullPointer 异常

java - 如何在java中的const变量中保存Date对象