数组对象未被修改。只有第一个元素在不断变化。

时间:2013-12-03 15:16:02

标签: java arrays object

出于某种原因,当我尝试使用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.");

             }
            }
          }
        }
      }

2 个答案:

答案 0 :(得分:0)

里程正在增加,但你从不为每个跑步者重置它,所以你的while循环只为第一个跑步者执行。

答案 1 :(得分:0)

查看你的while循环的条件...... miles < DISTANCE然后在你miles += MILE_INCREMENT内,你的里程变得大于或等于距离,所以你永远不会再为你所有其他迭代进入for循环