Java 通过/返回不工作 公共类21点{ 静态字符串[]组=新字符串[52]; //创建一副牌 公共静态void main(字符串[]args){ 字符串[]套装={“梅花”、“钻石”、“红心”、“黑桃”}; 字符串[]秩={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”, “杰克”、“女王”、“国王”、“王牌”}; for(int a=0;a
因此,我的主要方法的第一部分生成了一副牌,并且工作完全正常(我已经单独测试了它)。我正试图让我的第二张随机卡从牌组中返回一张随机抽取的卡。我只能让它打印出‘G’,在那里我可以测试它是否工作。非常感谢您的帮助。谢谢大家! 您需要分配返回值Java 通过/返回不工作 公共类21点{ 静态字符串[]组=新字符串[52]; //创建一副牌 公共静态void main(字符串[]args){ 字符串[]套装={“梅花”、“钻石”、“红心”、“黑桃”}; 字符串[]秩={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”, “杰克”、“女王”、“国王”、“王牌”}; for(int a=0;a,java,Java,因此,我的主要方法的第一部分生成了一副牌,并且工作完全正常(我已经单独测试了它)。我正试图让我的第二张随机卡从牌组中返回一张随机抽取的卡。我只能让它打印出‘G’,在那里我可以测试它是否工作。非常感谢您的帮助。谢谢大家! 您需要分配返回值 public class BlackJack { static String[] deck = new String[52]; //Creates Deck of cards public static void main (Stri
public class BlackJack {
static String[] deck = new String[52];
//Creates Deck of cards
public static void main (String[] args) {
String[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" };
String[] rank = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"Jack", "Queen", "King", "Ace" };
for (int a=0; a < rank.length; a++) {
for (int b=0; b < suit.length; b++){
deck[suit.length*a + b] = (rank[a] +" of "+ suit[b]);
}
}
//Trying to get this to print out the returned card name
String card = "G";
randomCard(card);
System.out.println(card);
}
//Pulls a random card from the deck
public static String randomCard(String cardName) {
//Generates a random number between 0 and 52
int card = (int)(Math.random()*53);
cardName = (deck[card]);
return cardName;
}
}
在方法cardName=deck[card]中进行的赋值代码>仅更新本地方法字符串
参考cardName
,在方法范围之外没有任何影响
另外,为了更好地随机分发卡片,请查看。阅读和了解有关洗牌的更多信息
card = randomCard(card);
ArrayList deck=new ArrayList();
字符串[]套装={“梅花”、“钻石”、“红心”、“黑桃”};
字符串[]秩={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”,
“杰克”、“女王”、“国王”、“王牌”};
for(int a=0;a
您需要分配返回值
public class BlackJack {
static String[] deck = new String[52];
//Creates Deck of cards
public static void main (String[] args) {
String[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" };
String[] rank = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"Jack", "Queen", "King", "Ace" };
for (int a=0; a < rank.length; a++) {
for (int b=0; b < suit.length; b++){
deck[suit.length*a + b] = (rank[a] +" of "+ suit[b]);
}
}
//Trying to get this to print out the returned card name
String card = "G";
randomCard(card);
System.out.println(card);
}
//Pulls a random card from the deck
public static String randomCard(String cardName) {
//Generates a random number between 0 and 52
int card = (int)(Math.random()*53);
cardName = (deck[card]);
return cardName;
}
}
在方法cardName=deck[card]中进行的赋值代码>仅更新本地方法字符串
参考cardName
,在方法范围之外没有任何影响
另外,为了更好地随机分发卡片,请查看。阅读和了解有关洗牌的更多信息
card = randomCard(card);
ArrayList deck=new ArrayList();
字符串[]套装={“梅花”、“钻石”、“红心”、“黑桃”};
字符串[]秩={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”,
“杰克”、“女王”、“国王”、“王牌”};
for(int a=0;a
您的随机卡
有一些错误
ArrayList<String> deck = new ArrayList<String>();
String[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" };
String[] rank = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"Jack", "Queen", "King", "Ace" };
for (int a=0; a < rank.length; a++) {
for (int b=0; b < suit.length; b++){
deck.add(rank[a] +" of "+ suit[b]);
}
}
Collections.shuffle(deck, new SecureRandom());
String randomCard = deck.get(0);
然后使用以下命令调用该方法:
public static String randomCard() { // no need for an argument
int card = (int)(Math.random()*52); // was 53, but there are only 52 cards -
// you want to generate the number
// between 0 and 51
String cardName = deck[card]; // removed (" ")
return cardName;
}
您的随机卡
有一些错误
ArrayList<String> deck = new ArrayList<String>();
String[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" };
String[] rank = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"Jack", "Queen", "King", "Ace" };
for (int a=0; a < rank.length; a++) {
for (int b=0; b < suit.length; b++){
deck.add(rank[a] +" of "+ suit[b]);
}
}
Collections.shuffle(deck, new SecureRandom());
String randomCard = deck.get(0);
然后使用以下命令调用该方法:
public static String randomCard() { // no need for an argument
int card = (int)(Math.random()*52); // was 53, but there are only 52 cards -
// you want to generate the number
// between 0 and 51
String cardName = deck[card]; // removed (" ")
return cardName;
}
字符串是不可变的。你的方法
card = randomCard();
不(也不能)更改传入的字符串对象。这个
public static String randomCard(String cardName)
仅更改本地cardName
引用以指向新字符串。但是,传入的对象不会更改。因此,您需要显式地将card
分配给方法的返回值
cardName = ("deck[card]");
字符串是不可变的。你的方法
card = randomCard();
不(也不能)更改传入的字符串对象。这个
public static String randomCard(String cardName)
仅更改本地cardName
引用以指向新字符串。但是,传入的对象不会更改。因此,您需要显式地将card
分配给方法的返回值
cardName = ("deck[card]");
您应该看看原因:传递字符串的值。
分配时添加到Weston的解决方案
card = randomCard(card);
它实际上是在card变量中分配返回值,但是当您这样做时
card = randomCard(card);
它所做的只是更改函数randomCard的cardName参数的值。您应该查看原因:字符串的传递值。
分配时添加到Weston的解决方案
card = randomCard(card);
它实际上是在card变量中分配返回值,但是当您这样做时
card = randomCard(card);
它所做的只是更改函数randomCard的cardName参数值。Oh my。。。非常感谢你!我还是个新手哦我的。。。非常感谢你!我还是个新手,我很感激!我将“”添加到牌组[卡片]中,只是为了测试是否可以让它返回该卡片,而不是实际的卡片。是我消除过程的一部分,我只是忘记在复制/粘贴到这里之前删除它们。非常感谢,尽管我很感激!我将“”添加到牌组[卡片]中,只是为了测试是否可以让它返回该卡片,而不是实际的卡片。是我消除过程的一部分,我只是忘记在复制/粘贴到这里之前删除它们。不过非常感谢