使用 switch 语句将随机数转换为字符串
Convert a random number to a string using switch statements
我正在尝试编写一个生成随机数 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;
}
当所有这些都完成并运行时,我仍然只得到自己生成的数字。如果生成数字 2,则不是获取字符串“diamonds”。我的目标是连接一个随机花色,最后是一个随机数与那个花色搭配,所以据我所知,使用 System.out.println();每个开关盒的内部都不是我想要的。
作业说明是:“设计并实现一个名为 Cards 的应用程序,它随机选择一张扑克牌。首先使用随机数生成器 (Random class) 创建一个 1 到 4 范围内的数字。然后使用 switch 语句将数字转换为花色(红心、方块、梅花或黑桃)。接下来,使用随机生成器创建 1 到 13 范围内的随机数。将数字转换为 ace、2、3、等使用另一个 switch 语句。显示花色和所选卡的值。"
您正在使用 switch 语句创建 heart/a diamond/a club/a spade。但请仔细阅读您的说明。它说,“将数字转换为花色”。让我们制作一套,好吗?
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 以及 2 和 3 等,您的牌号变量也应该是字符串。你没有提到任何操作,所以我认为这是可以的。
我从 Java 开始,所以我经常遇到 Random rand = new Random() 和/或 Scanner sc = new Scanner(System.in) 多次使用相同名称的错误。因此,我会为数字和花色创建使用不同名称的 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);
}
}
我正在尝试编写一个生成随机数 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;
}
当所有这些都完成并运行时,我仍然只得到自己生成的数字。如果生成数字 2,则不是获取字符串“diamonds”。我的目标是连接一个随机花色,最后是一个随机数与那个花色搭配,所以据我所知,使用 System.out.println();每个开关盒的内部都不是我想要的。
作业说明是:“设计并实现一个名为 Cards 的应用程序,它随机选择一张扑克牌。首先使用随机数生成器 (Random class) 创建一个 1 到 4 范围内的数字。然后使用 switch 语句将数字转换为花色(红心、方块、梅花或黑桃)。接下来,使用随机生成器创建 1 到 13 范围内的随机数。将数字转换为 ace、2、3、等使用另一个 switch 语句。显示花色和所选卡的值。"
您正在使用 switch 语句创建 heart/a diamond/a club/a spade。但请仔细阅读您的说明。它说,“将数字转换为花色”。让我们制作一套,好吗?
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 以及 2 和 3 等,您的牌号变量也应该是字符串。你没有提到任何操作,所以我认为这是可以的。
我从 Java 开始,所以我经常遇到 Random rand = new Random() 和/或 Scanner sc = new Scanner(System.in) 多次使用相同名称的错误。因此,我会为数字和花色创建使用不同名称的 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);
}
}