Java 对于不工作的循环:";不是一份声明”;
我无法编译那个for循环。我一直在寻找解决办法,但我似乎不太明白这里的错误。 请告知!! 提前向所有人致谢。试试看Java 对于不工作的循环:";不是一份声明”;,java,for-loop,error-handling,Java,For Loop,Error Handling,我无法编译那个for循环。我一直在寻找解决办法,但我似乎不太明白这里的错误。 请告知!! 提前向所有人致谢。试试看 if(fightAnswer == true) { System.out.println("Let's do this.\n"); for(dude.speed >= mob1.speed; mob1.defense > 0; mob1.defense = mob1.defense - dude.strength
if(fightAnswer == true) {
System.out.println("Let's do this.\n");
for(dude.speed >= mob1.speed; mob1.defense > 0;
mob1.defense = mob1.defense - dude.strength) {
Scanner inFight = new Scanner(System.in);
mob1.showAttributes();
System.out.println("Continue fighting? (y/n)");
fightChoice = inFight.hasNext();
System.out.print("\n");
}
}
只要
dude.speed
大于mob1.speed
或者mob1.defense
大于0,循环就会运行。。。这就是你想要做的吗?对于(初始化;迭代条件;增量)
查看你的代码,看看它是否符合这个公式。你的dude.speed>=mob1.speed
的目的是什么?它似乎不是循环的初始化语句。你的意思是说它是某个地方的if
条件的一部分吗?我的意思是初始化,但我想你是对的。我已经用以下内容替换了foor循环:for(;mob1.defence>0;mob1.defence=mob1.defence-dude.strength){}
这似乎在某种程度上起了作用,但我不知道将speed语句放在哪里。如果不需要特定的初始化,使用while
循环可能会更好。while
工作正常。非常感谢你们的快速回复,非常感谢你们的快速回复。基本上,我希望条件是如果dude.speed>mob1.speed和mob1.defence>0,那么mob1.defence=mob1.defence-dude.strength。最后,块代码将完成小for循环。
for (;;(dude.speed>=mob1.speed||mob1.defense>=0) {
...