有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java卡片组程序返回空卡片

我正试着制作一副卡片,并把每一张都打印出来。我有一门课是关于一张牌的,还有一门课是关于一副牌的。我尝试在我的card类中使用toString()方法打印所有卡片等级和套装。出于某种原因,它只打印13张卡(2-A所有俱乐部),其余为空。以下是代码:

卡片。爪哇

public class Card
{
    private enum Suit {HEARTS, DIAMONDS, SPADES, CLUBS};
    private Suit suit;
    private String rank;

    public Card(String r, int index)
    {
            rank = r;
            setSuit(index);
    }

    public void setSuit(int index)
    {
            switch(index)
            {
                  case 0:
                     suit = suit.HEARTS;
                     break;
                  case 1:
                     suit = suit.DIAMONDS;
                     break;
                  case 2:
                     suit = suit.SPADES;
                     break;
                  case 3:
                     suit = suit.CLUBS;
                     break;
            }
    }

    public String toString()
    {
            return (rank + " of " + suit);
    }
}

甲板。爪哇

public class Deck
{
    private Card [] card = new Card[52];

    public Deck()
    {
            for(int i = 0; i < 13; i++)
            {
                  for(int j = 0; j < 4; j++)
                  {
                     if(i < 9)
                         card[i] = new Card(Integer.toString(2+i), j);
                     else if(i == 9)
                         card[i] = new Card("J", j);
                     else if(i == 10)
                         card[i] = new Card("Q", j);
                     else if(i == 11)
                         card[i] = new Card("K", j);
                     else
                         card[i] = new Card("A", j);
                  }
            }
    }

    public Card getInfo(int index)
    {
            return card[index];
    }
}

测试。爪哇

public class Test
{
    public static void main(String [] args)
    {
            Deck deck = new Deck();

            for(int i = 0; i < 52; i++)
                     System.out.println(deck.getInfo(i));
    }
}

任何帮助都将不胜感激

编辑:我不能使用你在这里看不到的任何东西


共 (2) 个答案

  1. # 1 楼答案

    一项建议: 在switch语句中有一个默认的大小写

    这里的错误是,您的卡索引仅设置为0到12,因此您的所有卡将仅从卡0到卡12初始化

    改变这一点: 卡片[i]=。。。。 为此: 卡片[i+13*j]=

  2. # 2 楼答案

    你只需将数组中的同一元素设置为4张牌,循环的每次迭代,你需要在某个点上i等于51,以设置所有牌或使用某种计数器