gpt4 book ai didi

java - Java 中不允许声明变量

转载 作者:行者123 更新时间:2023-11-29 07:00:17 24 4
gpt4 key购买 nike

这是我学校项目中的一个 java 扑克项目。

一开始定义了Card类。

class Card {

/* constant suits and ranks */
static final String[] Suit = {"Clubs", "Diamonds", "Hearts", "Spades" };
static final String[] Rank = {"","A","2","3","4","5","6","7","8","9","10","J","Q","K"};

/* Data field of a card: rank and suit */
private int cardRank; /* values: 1-13 (see Rank[] above) */
private int cardSuit; /* values: 0-3 (see Suit[] above) */

/* Constructor to create a card */
/* throw MyPlayingCardException if rank or suit is invalid */
public Card(int rank, int suit) throws MyPlayingCardException {
if ((rank < 1) || (rank > 13))
throw new MyPlayingCardException("Invalid rank:"+rank);
else
cardRank = rank;
if ((suit < 0) || (suit > 3))
throw new MyPlayingCardException("Invalid suit:"+suit);
else
cardSuit = suit;
}

/* Accessor and toString */
/* You may impelemnt equals(), but it will not be used */
public int getRank() { return cardRank; }
public int getSuit() { return cardSuit; }
public String toString() { return Rank[cardRank] + " " + Suit[cardSuit]; }

然后,我尝试定义 Deck 类。但是我有一些错误。

class Decks {

/* this is used to keep track of original n*52 cards */
private List<Card> originalDecks;

/* this starts with n*52 cards deck from original deck */
/* it is used to keep track of remaining cards to deal */
/* see reset(): it resets dealDecks to a full deck */
private List<Card> dealDecks;

/* number of decks in this object */
private int numberDecks;

public Decks()
{
ArrayList<Card> originalDecks = new ArrayList<Card>(52);
ArrayList<Card> dealDecks = new ArrayList<Card>(52);

Card card = new Card(j,i); //Error

for (int i=0; i<=3; i++)
for (int j=0; j<= 13; j++)

originalDecks.add(card); //Error

dealDecks.addAll(originalDecks);


}

公共(public)甲板(int n) {

    int numberDecks=n ; 

Decks originalDecks = new Decks();

for (int m=0; m< n; m++){

originalDecks += originalDecks ;

}


}

想法是:首先,我尝试创建一副有 52 张牌的牌;然后我将它循环 n 次以创建 n 副牌。但是,我收到了一些 Unresolved 错误,向我展示了这一点

Cannot find symbol i, j.

这是为什么呢?

最佳答案

因为您尝试在定义ij 之前创建Card。另外,请使用大括号。

// Card card = new Card(j,i);
for (int i=0; i<=3; i++) {
for (int j=0; j<= 13; j++) {
Card card = new Card(j,i);
originalDecks.add(card);
}
}

关于java - Java 中不允许声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27301607/

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