for循环语法有什么问题?

时间:2014-11-23 06:48:19

标签: java loops for-loop statements

我在这里有一段代码 - 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) {

    }
}

2 个答案:

答案 0 :(得分:1)

这是不允许的,因为PlayingCard currentCard的声明没有范围,如果你不用括号包裹它。

顺便说一句,如果你想让你的循环做某事,你应该把条件改为currentCardNumber < 51;

答案 1 :(得分:1)

您的问题出在for loop

for (int currentCardNumber = 0; currentCardNumber > 51; currentCardNumber++)
            PlayingCard currentCard = playingDeckArray[currentCardNumber];
}

缺少大括号{

这是任何语言的标准,不仅仅是java。任何循环,无论是for loopwhile loop还是do-while loop,还是像if-elseif-else if- elseswitch这样的任何一个循环都必须有关闭花括号。

阅读本文了解更多详情:Control Flow Statements in Java

另请阅读:Wikipedia - Indent Style