2014-10-24 3 views
0

По какой-то причине цикл for for выполняется только один раз. Он проходит через первую итерацию, но затем застревает в начале. Вот как выглядит цикл.Java For цикл выполняется только один раз

for (int i = 0; i < z.length()/4; i++) { 
     m.writeInt(z.readInt()); 
} 
for (int i = 0; i < o.length()/4; i++) { 
     m.writeInt(o.readInt()); 
} 

Эти два отдельных контур

Это сортировочный радикс слияние. Но с бинарными файлами. Если это поможет. Я думаю, что это могло бы иметь какое-то отношение к вызову метода z.readInt() в m.writeInt()

m. o и z - двоичные файлы, заполненные целыми числами z.length() return 16, поэтому в файлах есть 4 целых числа, поскольку каждое целое число составляет 4 байта. Так z.Length()/4 = 4. Петля предполагается выполнить 4 раза

+1

Как он застрял? Выполняется ли выполнение, вы получаете исключение или ничего не делаете? – SWoeste

+0

Что такое z в loop.can u, пожалуйста, укажите его инициализацию и объявление. – Aamir

+0

Печать длины z и o до и во время цикла может помочь вам понять, почему она работает только один раз – headlikearock

ответ

1

z.length/4 выполняет целочисленное деление, поэтому, если у вас есть z = 5, то оно вернется 1. Это вероятно, будет вашей проблемой, но мы должны увидеть немного больше, чтобы быть уверенным. (например, что такое o и z?)

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