Java 标记“”上的语法错误;否则"—;究竟怎样?

Java 标记“”上的语法错误;否则"—;究竟怎样?,java,karel,Java,Karel,我正在以经典的方式学习Java——与Karel一起玩 但我似乎遇到了一个简单的问题,即使在谷歌的帮助下我也无法解决 我在Eclipse中得到一个错误,说在标记“else”上有语法错误,我应该删除它 为什么?else语句上方的代码块中的语法相同 这是我的密码: public void run() { putBeeper(); if(beepersPresent()){ move(); } while(frontIsClear()){ m

我正在以经典的方式学习Java——与Karel一起玩

但我似乎遇到了一个简单的问题,即使在谷歌的帮助下我也无法解决

我在Eclipse中得到一个错误,说在标记“else”上有语法错误,我应该删除它

为什么?else语句上方的代码块中的语法相同

这是我的密码:

public void run() {

    putBeeper();
    if(beepersPresent()){

        move();

    } while(frontIsClear()){
        move();
        putBeeper();
    } else if(facingEast()){

        turnLeft();
        move();

    }
        }

您的
else
时匹配
,而在
时不匹配
。不完全清楚您要在那里做什么。

您的
其他
匹配,而
匹配,如果
则不匹配。不完全清楚您在那里想做什么。

可能:

while(frontIsClear())
应该是

else if(frontIsClear())
可能:

while(frontIsClear())
应该是

else if(frontIsClear())

你到底想在这里干什么

while(frontIsClear()){
        move();
        putBeeper();
    } else if(facingEast()){

        turnLeft();
        move();

而这个。。否则呢?不可能。

你到底想在这里做什么

while(frontIsClear()){
        move();
        putBeeper();
    } else if(facingEast()){

        turnLeft();
        move();

而这个。。否则呢?不可能。

因为你想说
,而(){}else{

还有别的原因吗


(是的,我就是这么做的。)

因为你想说
,而(){}else{

还有别的原因吗


(是的,我就是这么做的。)

else
语句必须紧跟在
之后,如果
,则它们之间有一个
while
循环

由于这一点被否决,更正式的决议草案的相关部分

14.9 if语句if语句允许有条件地执行一条语句或有条件地选择两条语句,执行一条 或者另一个,但不是两者都有


表达式的类型必须为boolean或boolean,否则会发生编译时错误。

必须在
之后紧跟
语句。如果
,则它们之间有
while
循环

由于这一点被否决,更正式的决议草案的相关部分

14.9 if语句if语句允许有条件地执行一条语句或有条件地选择两条语句,执行一条 或者另一个,但不是两者都有


表达式的类型必须为boolean或boolean,否则会发生编译时错误。

如果将
else
放在
之后,而
,这确实是一个语法错误

试试看:

public void run() {
    putBeeper();
    if(beepersPresent()){
        move();
    } 
    while(frontIsClear()){
        if (facingEast()) {
            turnLeft();
        }
        move();
        putBeeper();
    }
}

你把你的
else
放在
后面,而
确实是一个语法错误

试试看:

public void run() {
    putBeeper();
    if(beepersPresent()){
        move();
    } 
    while(frontIsClear()){
        if (facingEast()) {
            turnLeft();
        }
        move();
        putBeeper();
    }
}
真的很简单

if在{和}之间,else必须正好在后面

把}移到while附近,放到别的地方,你就可以了。

真的很简单

if在{和}之间,else必须正好在后面


将}移到while附近的地方,放到其他地方,你应该没事。

哇,大家,我们真的需要8个回答说同样的话吗?@skynoth为了公平对待回答者,8个回答中有7个在同一分钟内回答,随着第八个答案的发布,我通常会删除或取消我的答案,如果有更好的答案同时发布:大多数其他人也会这样做。它可以降低噪音。哇,人们,我们真的需要8个回复说同样的话吗?@Skynorth为了公平对待回答者,其中8个回复中的7个在同一分钟内回答,第8个就在后面不远了。我通常会在同一时间发布更好的副本时删除或取消我的答案:大多数其他人也会这样做。它能把噪音降下来。