我在这里有一段代码 - PlayingDeck
类。正如你所看到的那样,它没有完成,但是在第17行,在for循环下,我得到一条错误消息,说PlayingCard
声明和初始化不是声明。为什么这样?当我使用相同的语句将大括号添加到for循环时,错误消息消失。有人可以解释一下原因吗?我只需要两个括号,一个在开始时,一个在for循环结束时......?
谢谢
无法编译的代码--------
public class PlayingDeck {
static int numberOfCards;
static {
numberOfCards = 52;
}
PlayingCard[] playingDeckArray;
PlayingDeck() {
playingDeckArray = new PlayingCard[numberOfCards];
for (int currentCardNumber = 0; currentCardNumber > 51; currentCardNumber++)
PlayingCard currentCard = playingDeckArray[currentCardNumber];
}
public static void main(String[] args) {
}
}
编译的代码-----
public class PlayingDeck {
static int numberOfCards;
static {
numberOfCards = 52;
}
PlayingCard[] playingDeckArray;
PlayingDeck() {
playingDeckArray = new PlayingCard[numberOfCards];
for (int currentCardNumber = 0; currentCardNumber > 51; currentCardNumber++){
PlayingCard currentCard = playingDeckArray[currentCardNumber];
}
}
public static void main(String[] args) {
}
}
答案 0 :(得分:1)
这是不允许的,因为PlayingCard currentCard
的声明没有范围,如果你不用括号包裹它。
顺便说一句,如果你想让你的循环做某事,你应该把条件改为currentCardNumber < 51
;
答案 1 :(得分:1)
您的问题出在for loop
for (int currentCardNumber = 0; currentCardNumber > 51; currentCardNumber++)
PlayingCard currentCard = playingDeckArray[currentCardNumber];
}
缺少大括号{
。
这是任何语言的标准,不仅仅是java。任何循环,无论是for loop
,while loop
还是do-while loop
,还是像if-else
,if-else if- else
,switch
这样的任何一个循环都必须有关闭花括号。
阅读本文了解更多详情:Control Flow Statements in Java