【发布时间】:2018-09-26 19:31:35
【问题描述】:
我正在使用一种方法在我的 Black Jack 程序中发牌。这是我的方法:
public static String dealCard() {
Random randomCard = new Random();
int min = 1;
int rCard = min + randomCard.nextInt(13);
switch(rCard) {
case 1 : return "2";
case 2 : return "3";
case 3 : return "4";
case 4 : return "5";
case 5 : return "6";
case 6 : return "7";
case 7 : return "8";
case 8 : return "9";
case 9 : return "10";
case 10 : return "Queen";
case 11 : return "Jack";
case 12 : return "King";
case 13 : return "Ace";
}
}
但是我收到以下错误...
This method must return a result of type String.
这就是为什么我很困惑,因为当我选择箱子然后它返回卡片时,我不是返回一个字符串吗?我很困惑。我尝试切换我的方法并尝试使用 If 语句而不是 switch case,但我仍然得到相同的方法。我怀疑它是我的nextInt(); 函数的一部分,但我不知道是什么。如有任何关于我可能出错的地方的建议,我将不胜感激。
【问题讨论】:
-
如果 rCard = 20 会怎样? (编译器不知道这是不可能的)——那么你的方法会返回什么?
-
与实际问题无关:我不做Java但不是randomCard.nextInt(13) 意味着随机数上限为13(12 + 1)? 20 的结果应该是不可能的。
-
@Steve 编译器不知道这一点。这就是评论的重点
-
此外,这正是需要
Map的情况,甚至只是一个字符串数组。 -
与原问题无关,但我想问一下,Jack不应该在Queen之前吗?哦,也许你在想“女士优先”:-P
标签: java switch-statement blackjack