【问题标题】:Java: Can no longer use System.out.println() in my applicationJava:不能再在我的应用程序中使用 System.out.println()
【发布时间】:2020-07-27 19:51:02
【问题描述】:

我做了一个“猜随机数”的小游戏,它接受用户的输入并检查它是否等于使用 for 循环生成的数字。如果是,应用程序会打印一条祝贺语句,然后跳出循环。如果没有(并且失败了五次),应用程序应该打印出一个游戏过度类型声明。

由于某种原因,我的游戏结束语句不打印,即使所有其他 println() 语句都打印。为什么它不起作用?

下面是我的代码:

import java.util.Random;
import java.util.Scanner;

public class randgame_draft {
    public static void main(String[] args) {
        System.out.println("Welcome to RandGame. What's your name?");
        Scanner scanner = new Scanner(System.in);
        String answer = scanner.next();
        System.out.println("Hello, " + answer + ". Shall we begin?");
        Scanner ask = new Scanner(System.in);
        String response = ask.next();
        if (response.equals("yes")) {
            System.out.println("Alright!");
        } else {
            System.out.println("Oh, okay. Later!");
            return;
        }

        Random random = new Random();
        int rand = random.nextInt(20) + 1;
        for (int i = 0; i < 5; i++) {

            System.out.println(answer + ", please provide a random number between 1 and 20.");
            Scanner begin = new Scanner(System.in);
            int end = begin.nextInt();
            System.out.println("you chose " + end);

            if (end != rand && end > rand) {
                System.out.println("Hint: guess lower");
            } else if (end != rand && end < rand) {
                System.out.println("Hint: guess higher");
            } else if (end == rand) {
                System.out.println("congratulations, you are correct!");
                System.out.println("answer was " + rand);
                System.out.println("thanks for playing, " + answer + "!");
                return;
            } else {
                System.out.println("Sorry " + answer + ". the answer was " + rand + ". Game Over.");
            }

        }

    }
}

【问题讨论】:

  • 可能不是整个问题(甚至可能根本不是问题的一部分),但不要在循环中创建新的Scanner。制作一个,重复使用。
  • 这意味着条件永远不会被击中。尝试通过调试器或打印值并检查您的假设进行调试。
  • 我注意到end != rand &amp;&amp; end &lt; randend &lt; rand 相同。这同样适用于end &gt; rand

标签: java for-loop random println


【解决方案1】:

看看你的条件:

1) end > rand //end != rand  is redundant
2) end < rand
3) end == rand
4) else print

你能想象任何 end 不小于、大于或等于 rand 的场景吗?

您应该在循环结束并且玩家没有猜到数字后打印您的消息。

【讨论】:

  • 没错,打败我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
相关资源
最近更新 更多