enum Rank { 
   DEUCE, THREE, FOUR, FIVE, SIX, SEVEN,
   EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE 
}enum Suit { 
   DIAMONDS, 
   CLUBS, 
   HEARTS, 
   SPADES 
}一副扑克牌,现在如何用2重for来生成各不相同的4*12=48张牌呢? 个人感觉枚举的不是数 所以不能for(i=1;1++) 
也不属于什么for( String a:string1) for-each表示。

解决方案 »

  1.   

    for(Rank rank : Rank.values())
      for(Suit suit: Suit.values());
      

  2.   

    Rank []rk=Rank.values();
    可以转换为一个数组。这样大概可以解决问题了。
      

  3.   

    哦。2楼的似乎把Rank也当作一种类型进行了for-each遍历。
      

  4.   

    Rank.values()  枚举的类型values返回的是对应数值int型么
      

  5.   

    talent_marquis(甜菜侯爵)    
    小声说一句
    应该是13×4=52张牌吧。
    ----------------------------------------------
    同感
      

  6.   

    values当然是返回这个enum对象,不知道你需要怎样的int值,如果是顺序号可以使用
    rank.ordinal()来返回
      

  7.   

    昏,就是12*4=48,另外还有4个王吗。 
    但是我下面这个程序在eclipse环境下运行提示
    Exception in thread "main" java.lang.NullPointerException
    at classes_object.card.Cards.main(Cards.java:45)
    ==========================================================================
    enum Rank { 
       DEUCE, THREE, FOUR, FIVE, SIX, SEVEN,
       EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE 
    }enum Suit { 
       DIAMONDS, 
       CLUBS, 
       HEARTS, 
       SPADES 
    }
    class card {
        private final Rank rank;
        private final Suit suit;    //constructor
        public card(Rank rank, Suit suit) {
            this.rank = rank;
            this.suit = suit;
        }    public Suit getSuit() {
            return suit;
        }    public Rank getRank() {
            return rank;
        }    public String toString() {
            return rank + " of " + suit;
        }
       
    }         public class Cards {
    public static void main(String[] args) {
    final card[] cards = null;
    int i=0;
    for(Rank rg:Rank.values())
    for(Suit st:Suit.values())
    cards[i++]= new card(rg,st);

    for(i=0;i<48;i++) {
    System.out.println(cards[i]);
    }
    }
    }
      

  8.   

    本人也是新手
    d8111的程序我有一点不太明白
    前面你已经初始化了数组
    final card[] cards = null;
    后面
    cards[i++]= new card(rg,st);
    这样附值是不行的
    它是空指针
      

  9.   

    o .发现问题了。呵呵。final card,
      

  10.   

    应该要将
    final card[] cards = null;
    修改为
    final card[] cards = new card[52];