【发布时间】:2021-01-14 08:55:50
【问题描述】:
我正在尝试用 Java 创建一个简单的二十一点游戏。我有一个菜单,其中包含 1-4 的可能整数选项。如果用户输入一个大于 4 的整数,我的 IF 语句需要打印“invalid integer”然后重启游戏。如果用户输入一个负值,我的 ELSE-IF 语句需要做同样的事情。
但是,这些语句只能工作一次,所以如果我多次输入小于 0 和大于 4 的值/背靠背,我无法打印“无效整数”。
[已编辑]
感谢任何帮助。
【问题讨论】:
-
处理大于4的输入的条件在哪里?我没看到。
-
您使用
continue;语句,这意味着您的语句有一个循环。这个循环在哪里?我看不到它... -
默认语句适用于任何不是 1-4 的输入。只要用户输入不是 4,这些语句都在一个 while 循环中进行连续游戏(如果用户输入为 4,则 while 循环中断并且游戏停止)。
-
你需要把逻辑放在一个循环中,这样它就会一直循环,直到你得到一个正确的答案。这里有很多问题可以讨论这个问题。
-
旁注:您的
switch (chosen)用于案例 2 - 10 已完全过时。所有案例都在做同样的事情,只是打印的消息不同,可以简单地重写为:if(chosen >= 2 && chosen <= 10) { System.out.println("Your card is a " + chosen + "!"); playerHand = playerHand + chosen; System.out.println("Your hand is: " + playerHand); }你应该在第一个 if 语句之后放置达到 21 的检查,以始终检查它,不仅仅是当国王有被选中。然后,您也不需要重复“您的手是”打印语句。
标签: java if-statement java-8 blackjack