gpt4 book ai didi

java - 输出显示为空

转载 作者:行者123 更新时间:2023-11-30 05:28:32 24 4
gpt4 key购买 nike

所以我是编程初学者,我在类里面有一个项目,要求我制作一手桥牌并将其分发给四名玩家。其中一项任务要求我打印出一副洗牌的牌,但是,当我尝试打印它时,它输出 52 个空语句而不是洗牌的牌。有人可以帮我解决这个问题吗?谢谢。

import java.util.*;

public class Card {

public static String[] SUITS = {"Clubs","Diamonds","Hearts","Spades"};
public static String[] RANKS = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

public static String[]deck = new String[52];

public static String[] createDeck() { // initializes and creates deck

for(int i = 0; i < RANKS.length ; i++) {
for(int j = 0; j < SUITS.length ; j++) {

deck[SUITS.length * i + j] = RANKS[i] + " of " + SUITS[j];
}
}
return deck;
}

public static void shuffleDeck(String[]deck) { //shuffles deck created from array
int n = deck.length;

for (int i = 0; i < n; i++) {

int r = i + (int)(Math.random() * (n-i));

String temp = deck[r];
deck[r] = deck[i];
deck[i] = temp;

System.out.println(deck[i]);
}
}

public static void main(String[] args) {
Card.shuffleDeck(deck);

}

最佳答案

您在 main() 方法中缺少 createDeck() 调用:

public static void main(String[] args) {
createDeck();
shuffleDeck(deck);
}

因为以下语句仅使用 52 null 值初始化 deck 数组:

public static String[]deck = new String[52];

您需要用实际值填充deck数组才能正确显示它们。您可以安全地将 createDeck() 标记为 void,因为您不需要返回 deck 数组,因为它被声明为 static 无论如何都可以访问。 shuffleDeck() 方法也是如此,您不需要传递 static 数组,它将可以访问。

或者您可以采用另一种方法,其中将 deck 数组声明为局部变量,并将其作为参数传递给这些方法。

关于java - 输出显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58028411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com