【发布时间】:2014-10-27 08:31:10
【问题描述】:
public class BlackJack {
public static void main(String args[]) {
String input;
char reDo;
Scanner keyboard = new Scanner (System.in);
Random random = new Random();
int card1 = random.nextInt(10) + 1;
int card2 = random.nextInt(10) + 1;
int card = random.nextInt(10) + 1;
int total1 = card1 + card2;
int total2 = total1 + card;
System.out.print("First cards: " + card1 + ", " + card2 + "\n");
System.out.print("Total: " + total1 + "\n");
boolean loop = true;
while (loop) {
System.out.print("Do you want another card? (y/n): ");
input = keyboard.nextLine();
reDo = input.charAt(0);
if (reDo == 'y' || reDo == 'Y') {
System.out.print("Card: " + card + "\n");
System.out.print("Total: " + total2 + "\n");
} else if (reDo == 'n' || reDo == 'N') {
loop = false;
}
}
}
}
输出如下:
第一张牌:8、3
总计:11
你要另一张卡吗? (是/否):是的
卡:7
总计:18
你要另一张卡吗? (是/否):是的
卡:7
总计:18
你要另一张卡吗? (是/否):n
我希望能够在循环中生成一张新的随机卡片,显示循环总数,然后停止程序。我无法理解的问题是如何使用 random.nextInt 工具并能够更方便地重用它。目前它卡在 card1、card2、card、total1 和 total2 上。如果我可以制作它们以便我可以更轻松地访问它们,那么我认为程序会更容易编写。问题是我无法理解如何在 while 循环中重复 random.nextInt。
【问题讨论】:
-
你不能直接调用
card = random.nextInt()作为if正文中的第一个语句,在两个打印语句之前吗? -
我要试试这个,一会儿回来。
-
在某些时候,您会想要创建一副纸牌并将其“洗牌”,然后从中抽牌,而不是随机卷起纸牌。
-
我从顶部注释掉了 int card 和 int total2 ,并将它们都放在了 if 语句中。仍然有一个错误,我不确定下一步应该是什么。这是输出: 第一张牌:1、3 总计:4 你想要另一张牌吗? (y/n): y Card: 2 Total: 6 你想要另一张卡片吗? (y/n): y Card: 9 Total: 13 你想要另一张卡片吗? (y/n): y Card: 7 Total: 11 你想要另一张卡片吗? (是/否):n
-
@DavidConrad 这是第二级 Java 类的第三个作业。我不太确定我们应该如何解决这么多问题。虽然我在退学后要重修这门课程,但我认为作业要求的还不是那个级别。