1

我正在尝试用 Java 创建一个简单的二十一点游戏。我有一个菜单,其中包含 1-4 的可能整数选项。如果用户输入大于4的整数,我的IF语句需要打印“invalid integer”然后重启游戏。如果用户输入一个负值,我的 ELSE-IF 语句需要做同样的事情。

但是,这些语句只能工作一次,所以如果我多次输入低于 0 的值和大于 4 的值/背靠背,我将无法打印“无效整数”。

[已编辑]

任何帮助表示赞赏。

4

2 回答 2

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...
}
于 2020-09-28T18:51:41.977 回答
0

您编写代码的方式确实令人困惑。即案例1如何涉及获得另一张卡?所有代码都写在一个主函数中吗?你如何创建一个名为 blackjack 的类,在其中你有不同的 getCard()、holdHand() 等方法,并创建一个类变量来控制手牌以及游戏计数和庄家/玩家获胜。会更容易理解您的代码。然后你可以在你的代码里面尝试你的代码。

就像是;

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

**methods here**

**main method to try your code**
}

我希望你能明白我的建议,我知道当你编写代码时,现在可能感觉需要做很多工作,但这会对你和任何阅读你的代码的人有所帮助。

于 2020-09-28T20:34:38.007 回答