-6

有人可以解释这段代码有什么问题吗?对我来说它看起来不错,但它一直说表达式的开头是非法的,并且 {} 是预期的,即使它在那里。

if (gamestate = 1) {
    while (life > 0) {
        if (atk > enemydef) {
            atk1 = atk - enemydef;
            enemylife = enemylife - atk1;
            System.in.println("Enemy health: " + enemylife);
            System.in.println("Your Health" + life);
        }
        if else(atk<enemydef) {
                        enemylife = enemylife;
        } else {
            enemylife = enemylife;
        }
    }
else {
    System.out.println("GAME OVER");
}
4

4 回答 4

3

改变这个:

if else (atk < enemydef)

对此:

else if (atk < enemydef)

else if,不是if else。并解决这个问题:

if (gamestate = 1)

将其更改为:

if (gamestate == 1)

正确的比较运算符是==,如果你写一个,=那么执行赋值,而不是相等比较。

于 2013-08-06T02:12:26.060 回答
2
if(gamestate = 1)

应该

if (gamestate == 1)

为了完整起见,我还将指出您对if else. 正确的语法是else if.

于 2013-08-06T02:11:29.877 回答
1

这里有一些问题。

  • if (gamestate = 1)应该是if (gamestate == 1)。单等号是赋值;双等号是布尔等价比较。

  • if else不是一个有效的表达式。你可能的意思是else if

  • 您的else语句前面缺少一个大括号。IntelliJ(我在这里用来格式化问题/答案)不相信这是它自己的陈述,所以它将它与另一个片段混为一谈。

于 2013-08-06T02:16:45.137 回答
0

else if不是if else。_ 线

if else(atk<enemydef)

应该

else if (atk<enemydef)

还有线

if(gamestate = 1)

需要是

if (gamestate == 1)

=操作是赋值,而==是相等运算符。 gamestate = 1将始终设置gamestate1

于 2013-08-06T02:12:05.060 回答