我的嵌套 For 循环不起作用
My Nested For Loop is not working
所以我正在为纸牌游戏创建套牌构造器,其中 for 循环不起作用。这是它的代码,忽略构造函数中的第三个整数变量,因为它不能解决问题,所以我将其注释掉:
public Deck(String[] ranks, String[] suits, int[] values) {
cards = new ArrayList<Card>();
for(int a = 0; a<=ranks.length; a++){
for(int b=0; b<=suits.length;b++){
cards.add(new Card(ranks[a],suits[b], 0));
System.out.println(cards);
size+=1;
}
}
}
但是,我的嵌套 for 循环不起作用。我为一副牌中的所有牌创建了一个花色和 运行ks 数组,从 One 到 Ace 以及包含 "Hearts"、"Spades"、"Clubs"、[=24 的花色数组=].这是我在进行故障排除时收到的打印输出以及我收到的错误消息。
[(One of Hearts (point value = 0)][(One of Hearts (point value = 0), (One of Spades (point value = 0)]
[(One of Hearts (point value = 0), (One of Spades (point value = 0), (One of Clubs (point value = 0)]
[(One of Hearts (point value = 0), (One of Spades (point value = 0), (One of Clubs (point value = 0), (One of Diamonds (point value = 0)]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Deck.<init>(Deck.java:36)
at DeckTester.main(DeckTester.java:14)
我的理解是,嵌套的 for 循环将完成包含 4 套西装的 Suits 数组列表,就像它在打印输出中一样。但是,我认为在 运行 经过四次之后,"a" for 循环不会产生错误,而是会移动到 运行ks 数组中的下一项而不是结束.所以它的有序对输出看起来像
(0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) etc.
任何帮助将不胜感激,感谢您抽出宝贵时间。
n 个元素的数组具有从 0
到 n-1
的索引。 n
是此类数组的无效索引。
你的指数差了一个。应该是:
for(int a = 0; a<ranks.length; a++){
for(int b=0; b<suits.length;b++){
cards.add(new Card(ranks[a],suits[b], 0));
System.out.println(cards);
size+=1;
}
}
}
如果不需要数组索引,可以使用for-each循环。
它可以让你避免这种错误。
for(String ra : ranks){
for(Stirng su : suits){
cards.add(new Card(ra, su, 0));
System.out.println(cards);
size+=1;
}
}
}
它很容易阅读,但不能在所有情况下使用。
所以我正在为纸牌游戏创建套牌构造器,其中 for 循环不起作用。这是它的代码,忽略构造函数中的第三个整数变量,因为它不能解决问题,所以我将其注释掉:
public Deck(String[] ranks, String[] suits, int[] values) {
cards = new ArrayList<Card>();
for(int a = 0; a<=ranks.length; a++){
for(int b=0; b<=suits.length;b++){
cards.add(new Card(ranks[a],suits[b], 0));
System.out.println(cards);
size+=1;
}
}
}
但是,我的嵌套 for 循环不起作用。我为一副牌中的所有牌创建了一个花色和 运行ks 数组,从 One 到 Ace 以及包含 "Hearts"、"Spades"、"Clubs"、[=24 的花色数组=].这是我在进行故障排除时收到的打印输出以及我收到的错误消息。
[(One of Hearts (point value = 0)][(One of Hearts (point value = 0), (One of Spades (point value = 0)]
[(One of Hearts (point value = 0), (One of Spades (point value = 0), (One of Clubs (point value = 0)]
[(One of Hearts (point value = 0), (One of Spades (point value = 0), (One of Clubs (point value = 0), (One of Diamonds (point value = 0)]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Deck.<init>(Deck.java:36)
at DeckTester.main(DeckTester.java:14)
我的理解是,嵌套的 for 循环将完成包含 4 套西装的 Suits 数组列表,就像它在打印输出中一样。但是,我认为在 运行 经过四次之后,"a" for 循环不会产生错误,而是会移动到 运行ks 数组中的下一项而不是结束.所以它的有序对输出看起来像
(0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) etc.
任何帮助将不胜感激,感谢您抽出宝贵时间。
n 个元素的数组具有从 0
到 n-1
的索引。 n
是此类数组的无效索引。
你的指数差了一个。应该是:
for(int a = 0; a<ranks.length; a++){
for(int b=0; b<suits.length;b++){
cards.add(new Card(ranks[a],suits[b], 0));
System.out.println(cards);
size+=1;
}
}
}
如果不需要数组索引,可以使用for-each循环。
它可以让你避免这种错误。
for(String ra : ranks){
for(Stirng su : suits){
cards.add(new Card(ra, su, 0));
System.out.println(cards);
size+=1;
}
}
}
它很容易阅读,但不能在所有情况下使用。