2012-01-13 2 views
-1

разрывов Этой петли, если раскомментировать 2 прокомментировала строку, не может понять, почему это происходит, помощь плзла:Java: в то время как петля разбивает

private static String findAll(String cell, ArrayList<String> hrange, ArrayList<String> vrange, List<String> cellrange, Integer cycle){ 
     cellrange.add(cell); 
     String color = XldocReader.xlCells.get(cell); 
     String[] chkeys = cell.split("\\$"); 
     String chLetter = chkeys[1]; 
     Integer chNumber = Integer.parseInt(chkeys[2]); 
     boolean rcnext = false; 
     boolean rcprev = false; 
     Iterator<String> ite = hrange.iterator(); 
     while (ite.hasNext()) { 
      String candidate = ite.next(); 
      String value = XldocReader.xlCells.get(candidate); 
      String[] ckeys = candidate.split("\\$"); 
      String cLetter = ckeys[1]; 
      int n = getKeyByValue(chLetter); 

      String next = cell.replaceAll(chLetter+"", columns.get(n+1) +""); 
      String cnext = XldocReader.xlCells.get(next); 
      String prev = cell.replaceAll(chLetter+"", columns.get(n-1) +""); 
      String cprev = XldocReader.xlCells.get(prev); 
      //rcnext = cnext.equals(color); 
      //rcprev = cprev.equals(color); 
      ... 
     } 
     return cellrange.toString(); 
    } 

он должен найти равные строки и запустить рекурсивно проверить еще раз, но на первых проверить это перерывы и ничего не проверять больше ...

+0

Пожалуйста, разместите трассировку стека исключений, которую вы получаете с помощью этого кода. – JuanZe

+0

Вы имеете в виду «break», так как в нем больше нет итераций цикла, или как есть исключение? –

+0

yap, он прерывается, поскольку больше итераций –

ответ

0

Я хотел бы сделать петлю

for(String candidate : hrange) { 

} 

и я бы пройти через код в отладчике, чтобы увидеть именно то, что он делает, как я подозреваю, что вы PROGR я не делаю то, что ты думаешь.

Что вы подразумеваете под перерывами? Что такое Исключение и на какой строке это происходит? Соответствует ли это тому, что вы видите в отладчике?

Я подозреваю, что проблема в коде вы помечены как ...

+0

... - означает отсутствие кода, я застрял на проверках строк –

+0

Iterator ite = hrange.iterator(); имеет 4 элемента в первом действии, в следующем вызове он имеет 1 элемент, следующие 6 элементов. и он должен перебирать все элементы, но это не так, просто остановитесь после первой проверки второго действия. –

+0

Что он делает после того, как он остановит цикл? Вы уверены, что не выбрасываете исключение? –

0

Можете ли вы дать нам больше информации? Какая ошибка? Как это ломается? и т. д. Также распечатывайте результаты цвета и cnext, cprev прямо перед тем, как он сломается.

Я предполагаю, что это не законные строки. И вы пытаетесь запустить метод equals для чего-то, что не является законной строкой.

+0

нет ошибок, просто прекратите итерацию. –

+0

color = # ff0000 cnext = # ffff00 cprev = # 99cc00 –

+0

У меня есть ошибка, и вы ее поймаете. Не имеет смысла иначе. – chantheman

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