Infinite java While循环

问题描述 投票:0回答:1

我有这个while循环,我不知道为什么它是无限的。有人能指出我正确的方向吗?我不确定是否将循环或条件堆放在错误的位置,并且看了太久了!

 public static void travel(Wizard wizard, boolean isMagic)
 {   
   int cellX = wizard.getCellX();

   if(cellX == WizardController.LAST_CELL)
   {
        while(cellX != 0)
         {
            if(isMagic)
                {
                 wizard.left();
                }
            else
                {
                 wizard.left();
                 WizardController.delay(100);
                }
        }
   }
   else
   {
        while(cellX != WizardController.LAST_CELL)
         {
             if(isMagic)
                 {
                  wizard.right();
                 }
            else
                 {
                  wizard.right();
                  WizardController.delay(100);
                 }
         }
   }
}

谢谢

java while-loop infinite-loop infinite
1个回答
0
投票

您不更新cellX循环内的while值。

while(cellX != 0)  {
   if(isMagic)  {
                 wizard.left();  
    }
   else {
                 wizard.left();
                 Wiza`enter code here`rdController.delay(100);
   }
} 

您必须在while循环内更​​新像这样的cellXcellX = wizard.getCellX();值。

© www.soinside.com 2019 - 2024. All rights reserved.