出于某种原因,当我尝试使用for循环和while循环修改数组中的元素时,它只会按照我想要的方式修改第一个元素。似乎剩下的元素只经过一次迭代然后停止。你们看到我的代码有什么问题,或者你需要更多的信息吗?我知道我的代码很糟糕,但是我不能在这里正确地将它全部签在我想要的地方。
public void race()
{
createRunners();
double miles = 0.0;
for(int i = 0; i < runners.length; i++)
{
runners[i].run(MILE_INCREMENT, FUEL_INCREMENT, FUEL_DECREMENT);
miles += MILE_INCREMENT;
while(miles < DISTANCE && !runners[i].bonked())
{
runners[i].run(MILE_INCREMENT, FUEL_INCREMENT, FUEL_DECREMENT);
System.out.println(runners[i]);
miles += MILE_INCREMENT;
if(miles < DISTANCE)
{
System.out.println("*** Runner Bonked ***");
}
else
{
System.out.println("Congratulations! Here's your medal and 26.2"
+ " bumper sticker.");
}
}
}
}
}
答案 0 :(得分:0)
里程正在增加,但你从不为每个跑步者重置它,所以你的while循环只为第一个跑步者执行。
答案 1 :(得分:0)
查看你的while循环的条件...... miles < DISTANCE
然后在你miles += MILE_INCREMENT
内,你的里程变得大于或等于距离,所以你永远不会再为你所有其他迭代进入for
循环