使用switch语句将随机数转换为字符串



我正在尝试编写一个程序,生成一个随机数1-4,然后使用switch语句,将每个数字转换为相应的纸牌花色(红桃1,方块2,梅花3,黑桃4)。

Random rand = new Random();

int suit;
suit = rand.nextInt(4)+1;

switch(suit) {
case 1:
String hearts = "hearts";
break;
case 2:
String diamonds = "diamonds";
break;
case 3:
String clubs = "clubs";
break;
case 4:
String spades = "spades";
break;
}

当所有这些都完成并运行时,我仍然只得到自己生成的数字。而不是得到字符串"diamonds";如果生成了数字2。我的目标是将一个随机的套装和一个随机数连接在一起,因此在我的理解中,使用System.out.println();每个开关柜里面都不是我想要的。

作业说明是:设计并实现一个名为Cards的应用程序,它随机选择一张扑克牌。首先使用随机数生成器(random类)创建一个范围在1到4之间的数字。然后使用switch语句将数字转换为花色(红桃、方块、梅花或黑桃)。接下来,使用随机生成器在1到13的范围内创建一个随机数。使用另一个switch语句将数字转换为ace、2、3等。显示花色和所选牌的值。">

您正在使用switch语句创建红桃/方块/梅花/黑桃。但是要仔细阅读说明书。它说,"将数字转换为套装">。让我们创建一个西服好吗?

Random rand = new Random();

int suitNumber = rand.nextInt(4)+1;
String suit = "";
switch(suitNumber) {
case 1:
suit = "hearts";
break;
case 2:
suit = "diamonds";
break;
case 3:
suit = "clubs";
break;
case 4:
suit = "spades";
break;
}

首先,我看到了变量的逻辑错误。我认为你需要一个变量,即纸牌套装的名称,它可以取4个不同的值。

同样,为了拥有a, j, q, k以及2s和3s等,你的纸牌号变量也应该是String。你没有提到任何操作,所以我认为这是可以的。

我开始在Java中,所以我经常有错误与Random rand = new Random()和或Scanner sc = new Scanner(System.in)多次使用相同的名称。因此,我将为number和suit创建一个不同名称的use Random。

import java.util.Random;
public class testRandom {
public static void main(String[] args) {
Random randSuit = new Random();
Random randNumber = new Random();
String suitName = "";
String cardName = "";
int suit;
int cardNumber;
suit = randSuit.nextInt(4)+1;
cardNumber = randNumber.nextInt(13)+1;
switch(suit) {
case 1:
suitName = "Hearts";
break;
case 2:
suitName = "Diamonds";
break;
case 3:
suitName = "Clubs";
break;
case 4:
suitName = "Spades";
break;
}
switch(cardNumber) {
case 1:
cardName = "Ace";
break;
case 2:
cardName = "2";
break;
case 3:
cardName = "3";
break;
case 4:
cardName = "4";
break;
case 5:
cardName = "5";
break;
case 6:
cardName = "6";
break;
case 7:
cardName = "7";
break;
case 8:
cardName = "8";
break;
case 9:
cardName = "9";
break;
case 10:
cardName = "10";
break;
case 11:
cardName = "Jack";
break;
case 12:
cardName = "Queen";
break;
case 13:
cardName = "King";
break;
}
System.out.println("I got the " + cardName + " of " + suitName);
}
}

最新更新