2012-07-01 4 views
-2

Итак, у меня есть эта строка кода, где он постоянно создает бесконечный цикл. Я где-то ошибаюсь? Оператор if внутри «if (randomNumbersForSelectionArray.Count> 0)» всегда должен возвращать true, но это не так. Затем, когда я делаю инструкцию else и проверяю, должен ли код быть истинным, когда он переходит в бесконечный цикл, он подтверждает, что моя логика должна быть правильной. Я не могу понять, где это происходит. Благодаря!!Не могу понять, почему это вызывает бесконечный цикл


Вот некоторый пример вывод, который я получаю.

12 | 2 = should = 2
Почему это нарушение!?!?!?
12 | 2 = should = 2
Почему это нарушение!?!?!?
... для бесконечного


междунар CountLoop = 0;

, если (trackFitnessRankArray.Length> = 1) {

  while (randomNumbersForSelectionArray.Count > 0) 
      { 
       countLoop++; 

       for (int j = trackFitnessRankArray.Length - 1; j >= 0; j--) 
       { 
        if (randomNumbersForSelectionArray.Count > 0) 
        { 
         if (randomNumbersForSelectionArray[0] >= (trackFitnessRankArray[j].CutoffPointForReproduction - trackFitnessRankArray[j].ChanceOfReproduction) && randomNumbersForSelectionArray[0] < trackFitnessRankArray[j].CutoffPointForReproduction) 
         { 
          //take the selected AIs and put them in an array 
          selectedToBreed.Add(trackFitnessRankArray[j]); 

          //remove the number from the randomNumber array 
          randomNumbersForSelectionArray.RemoveAt(0); 
         } 
         else 
         { 
          //if we're in an infinite loop 
          if (countLoop > AI_IN_EACH_GENERATION) 
          { 
           if (randomNumbersForSelectionArray[0] == trackFitnessRankArray[j].CutoffPointForReproduction) 
           { 
            if (j != 0) 
             Debug.WriteLine(j + "| " + randomNumbersForSelectionArray[0] + " =should= " + (trackFitnessRankArray[j - 1].CutoffPointForReproduction + trackFitnessRankArray[j - 1].ChanceOfReproduction)); 
            if (randomNumbersForSelectionArray[0] != (trackFitnessRankArray[j - 1].CutoffPointForReproduction + trackFitnessRankArray[j - 1].ChanceOfReproduction)) 
             Debug.WriteLine("Why is this breaking!?!?!?"); 
           } 
          } 
         } 
        } 
       } 
      } 
     } 

ответ

0

Компонент

//remove the number from the randomNumber array 
          randomNumbersForSelectionArray.RemoveAt(0); 

должен быть вне если

Смежные вопросы