【发布时间】:2020-11-08 15:20:42
【问题描述】:
我是编码和学校作业的新手。我正在用 Java 编写二十一点。这可能是一个简单的解决方法,但我的代码就是这样做的
经销商总数为7
你的总数是 11
你想要另一张卡片吗? 是/否 是的
你的总数是 20 你想要另一张卡吗? 是/否 是的
你的总数是 26 你想要另一张卡吗? 是/否 是的
你的总数是 26 你破产了 您现在有 $400.0 你想再玩一次吗?是/否
.
问题是它高于 21,但直到下一个循环才告诉你你破产了。我希望它只说最后一个,而不是倒数第二个和最后一个。
System.out.println("would you like another card? \ny/n");
answer = sanswer.nextLine();
//if player answers
while ("y".equals(answer)) {
if (total < 21){
hit = (int) Math.floor(Math. random() * 10) + 1;
total += hit;
System.out.println("____________________________\n");
System.out.println("Your total is " + total);
System.out.println("Would you like another card? \ny/n");
answer = sanswer.nextLine();
}
//player bust
if (total > 21) {
System.out.println("______________");
System.out.println("Your total is " + total);
System.out.println("You went bust");
System.out.println("You now have $" + money);
play = "no";
System.out.println("Would you like to play again? y/n");
answer = "";
play = srplay.next();
}
}
【问题讨论】:
-
您指的是 Java(不是 JavaScript)吗?提供的代码是用 Java 编写的。
-
是的,我做错了
-
鉴于当您开始 while 循环时,玩家已经承诺命中,也许在检查之前添加命中会有所帮助。
-
我建议您在
while ("y".equals(answer)) {行之后打印total的值。我想它会帮助你理解。
标签: java loops if-statement while-loop blackjack