繁体   English   中英

嵌套for循环以从数组列表中打印一组值

[英]Nested for loop to print a set of values from array list

我正在创建一个程序来显示扑克牌的数组列表。 到目前为止,我有两个枚举集,分别是西装和军衔。 我可以这样显示它们

S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK SA H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK HA D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK DA C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK CA

但是,有没有一种方法可以使用嵌套的for循环拆分西装并分别显示它们,如下所示?

S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK SA H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK HA D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK DA C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK CA

到目前为止,这是我尝试过的:

显示面板方法

private static final int MAXC = 13;
private static final int MAXD = 52;

private static void displayDeck(ArrayList<Decks> values)


{
    for (int i = 0; i < MAXD; i++)
    {
    // this prints the entire deck out  
    System.out.printf ("%s", values.get(i));

    }
}

我尝试过嵌套嵌套循环,但无济于事

{
    for (int i = 0; i < MAXD; i++)
    {
        for(int j =0; j < MAXC; j++)
        {
    System.out.printf ("%s", values.get(j));
        }
    }
}

添加套牌方法

    // enhanced for loop to add every single card into the arrayList
private void addDeck(ArrayList<Decks> values)
{
    for(SuitEnum s : SuitEnum.values ())
    {
        for(RankEnum r : RankEnum.values ())
        {
            values.add(new PlayingCard(s,r));
        }
    }

}

主要方法

 public static void main(String args[]) 
 {
      ArrayList<Decks> list = new ArrayList<Decks>();  

      decks test = new decks ();
      test.addDeck(list);
      printDeck(list);
 }

尝试这个:

{
    for (int i = 0; i < MAXD; i++)
    {
        for(int j =0; j < MAXC; j++)
        {
           System.out.printf ("%s", values.get(i).get(j));
        }
    }
}

尝试这个:

{
    for (int i = 0; i < MAXD; i++)
    {
        for(int j =0; j < MAXC; j++)
        {
            int index = i + j * MAXD;
            System.out.printf ("%s", values.get(index));
        }
    }
}

尝试这个,

private void addDeck(ArrayList<Decks> values)
{
    int suiteLength = SuitEnum.values().length;
    int rankLength = RankEnum.values().length;
    for(int i=0; i<suiteLength; i++)
    {
        for(int j=0; j<rankLength; j++)
        {
             int index = rankLength * i + j;
             System.out.printf ("%s", values.get(index));
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM