gpt4 book ai didi

java - Java中的ArrayList新手错误

转载 作者:行者123 更新时间:2023-12-01 18:06:04 24 4
gpt4 key购买 nike

我正在努力更加熟练地使用 Java。我正在制作一个简单的纸牌游戏来测试我的基本技能。我在 Deck 类(class)中遇到了一个问题。 for 循环不会在我的数组列表中创建新的卡片对象,尽管它们应该这样做。当我调用 getTotalCards 时,数组列表的大小始终为 0。您知道我做错了什么吗?

主类:

package gameofcards;

import java.util.Random;
import static gameofcards.Card.*;

public class GameOfCards {

public static void main(String[] args) {
Deck d1 = new Deck();
System.out.println(d1.getTotalCards());

}
}

套牌等级:

package gameofcards;

import java.util.ArrayList;

public class Deck {
private ArrayList<Card> cards;

public Deck(){
cards = new ArrayList<Card>();

for(int i = 1; i >=4; i++){
for(int j = 1; j >=13; j++){
cards.add(new Card(i,j));
}
}

}

public int getTotalCards(){
return cards.size();
}

}

卡片类别:

package gameofcards;


public class Card {

private int Suite;
private int Rank;

public static final int Club = 1;
public static final int Diamond = 2;
public static final int Hearts = 3;
public static final int Spade = 4;

public static final int Jack = 10;
public static final int Queen = 11;
public static final int King = 12;
public static final int Ace = 13;

public void setSuite(int cardSuite){
Suite=cardSuite;
}

public int getSuite(){
return Suite;
}

public void setRank(int cardRank){
Rank=cardRank;
}

public int getRank(){
return Rank;
}

public Card(int Suite, int Rank){
this.Suite = Suite;
this.Rank = Rank;
}

public String cardSuite(){
switch(Suite){
case Club: return "Clubs";
case Diamond: return "Diamonds";
case Hearts: return "Hearts";
case Spade: return "Spades";
default: return "Joker";
}
}

public String cardRank() {
switch(Rank){
case 2: return "2";
case 3: return "3";
case 4: return "4";
case 5: return "5";
case 6: return "6";
case 7: return "7";
case 8: return "8";
case 9: return "9";
case 10: return "Jack";
case 11: return "Queen";
case 12: return "King";
case 13: return "Ace";
default: return "Joker";
}
}

}

最佳答案

您的循环条件错误。

而不是:

for(int i = 1; i >=4; i++){

应该是:

for(int i = 1; i <=4; i++){

内循环条件也有类似的问题。

您希望在 i 小于或等于 4 时循环。

它没有添加卡片,因为它一开始就没有进入循环。

解决这个问题的一个简单方法是将 println 放入循环中,看看会发生什么。您会注意到它从未打印出来。

关于java - Java中的ArrayList新手错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36323487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com