为什么我的IF-ELSE-IF语句不能正常工作?

时间:2020-09-28 18:43:12

标签: java if-statement java-8 blackjack

我正在尝试用Java创建一个简单的21点游戏。我有一个菜单,可能包含1-4的整数选项。如果用户输入的整数大于4,则我的IF语句需要打印“无效整数”,然后重新启动游戏。如果用户输入负值,则我的ELSE-IF语句需要执行相同的操作。

但是,这些语句只能使用一次,因此如果我输入的值小于0且值大于或等于4且背对背大于4,则无法打印“无效整数”。

[已编辑]

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果您是这样定义scnr的:

Scanner scnr = new Scanner(System.in);

我建议您使用默认子句来做一个简单的switch case语句。

switch (userOpt) {
    case 1:
        // Option 1 logic...
    case 2:
        // Option 2 logic...
    case 3:
        // Option 3 logic...           
    case 4:
        // Option 4 logic...
    default:
        // Handling invalid input...
}

答案 1 :(得分:0)

您编写代码的方式确实令人困惑。 即案例1如何涉及获得另一张卡? 所有代码都写在主函数中吗?怎么样创建一个叫二十一点的类,在该类中,您有不同的getCard(),holdHand()等方法,并创建一个类变量,该变量既可以容纳手牌又可以拥有游戏计数并为发牌手/玩家赢得胜利。理解您的代码会容易得多。 然后,您可以尝试在代码内部的主要代码中进行编码。

类似的东西

public BlackJack { 
**class variables such as hand, player wins etc..**

**methods here**

**main method to try your code**
}

我希望您能得到我的建议,我知道您编写代码后现在可能需要做很多工作,但这将对您和任何阅读您代码的人都有帮助。