按升序组织一副牌

时间:2012-05-17 02:25:24

标签: java

您好我写了一些代码来打印出一副纸牌

这是如何出现的:2C 2D 2H 2S 3C 3D 3H 3S 4C ...

这就是我想要的:2C 3C 4C 5C 6C ......

这是我的代码的一部分:

public DeckOfCards()
{
  for (PlayingCard.CardRank rank : PlayingCard.CardRank.values())   
    for (PlayingCard.CardSuit suit : PlayingCard.CardSuit.values())           
    {
       System.out.printf(" %c%c ", rank.getSymbol(),suit.getSymbol());
    }
}

我打算使用for循环,但我不知道从哪里开始任何想法?

3 个答案:

答案 0 :(得分:3)

你非常接近:切换两个循环以获得你正在寻找的效果。

for (PlayingCard.CardSuit suit : PlayingCard.CardSuit.values())
    for (PlayingCard.CardRank rank : PlayingCard.CardRank.values())

其他一切看起来都不错。

答案 1 :(得分:0)

围绕嵌套for循环的顺序进行切换。也就是说,将其更改为:

for (PlayingCard.CardSuit suit : PlayingCard.CardSuit.values())
      for (PlayingCard.CardRank rank : PlayingCard.CardRank.values())   

请记住,内部循环每次都通过外部循环运行一次。 :)

答案 2 :(得分:0)

在我看来,它可能很简单:

for (PlayingCard.CardSuit suit : PlayingCard.CardSuit.values())
{  
    for (PlayingCard.CardRank rank : PlayingCard.CardRank.values())   

    {
       System.out.printf(" %c%c ", rank.getSymbol(),suit.getSymbol());
    }
}

..交换掉两个嵌套的for循环。