有人可以解释这段代码有什么问题吗?它看起来对我来说没问题,但它一直说表达式有一个非法的开头,并且{}是预期的,即使它在那里。
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");
}
答案 0 :(得分:3)
改变这个:
if else (atk < enemydef)
到此:
else if (atk < enemydef)
它是else if
,而不是if else
。并解决这个问题:
if (gamestate = 1)
将其更改为:
if (gamestate == 1)
正确的比较运算符为==
,如果您编写单个=
,则执行赋值,而不是相等比较。
答案 1 :(得分:2)
if(gamestate = 1)
应该是
if (gamestate == 1)
为了完整起见,我还要指出您对if else
有疑问。正确的语法是else if
。
答案 2 :(得分:1)
这里有一些错误。
if (gamestate = 1)
应为if (gamestate == 1)
。单等号是赋值;双等号是布尔等价比较。
if else
不是有效的表达式。你可能意思是else if
。
您在else
声明前面缺少一个大括号。 IntelliJ(我在这里用来格式化问题/答案)不相信它是它自己的声明,因此它将它与其他片段混为一谈。
答案 3 :(得分:0)
else if
而不是if else
。这条线
if else(atk<enemydef)
应该是
else if (atk<enemydef)
也是行
if(gamestate = 1)
需要
if (gamestate == 1)
=
操作是分配,而==
是相等运算符。 gamestate = 1
始终会将gamestate
设置为1