Как задать условие цикла если структура конечного объекта(к которому приментся for) -меняется

Рейтинг: 0Ответов: 1Опубликовано: 09.04.2015

Имеется такой код

String NameString;
int[] NameStruct = new int[64];
int[] StructSize = new int[2];
file.seek(offsetStart); 
NameString="";
StructSize[1] = (int)file.read();
count =(int)StructSize[1]-1;
System.out.println(count);
for(int i=0;i<count;i++) {
    NameStruct[i]= (int)in.read();
    NameString+=(char)NameStruct[i];
}

Он обращается к файлу - такой структуры {[00][string]},первые 2 байта это StructSize, там записывается значение размера[string].

Проблема в том что у меня таких блоков несколько(их количество(выведено в переменную)), и я не знаю как это все обернуть в цикл, чтобы в нем была описана структура блока, но при этом {[00][string]} такой вид- блок принимает только в начале позиции обращения(файла), далее блок имеет другую структуру {[00][00][00][00]*[00][string]} *обозначает начало StructSize[00].

Каким образом можно решить это ?

Надеюсь нормально объяснил, если что могу пример привести !

Ответы

▲ 4

Такие сложные циклы делаются с помощью универсальной конструкции:

for(;;) {
   //blah-blah
   continue; //пропустить хвост цикла
   //blah-blah
   break;  //выход из цикла
}

Некоторые товарищи предпочитают (если цикл должен быть исполнен хотя бы раз - постфиксный цикл):

do {
   //blah-blah
   continue; //пропустить хвост цикла
   //blah-blah
   break;  //выход из цикла
} while(...)

или если цикл может и не быть исполнен (префиксный цикл):

while(...) {
   //blah-blah
   continue; //пропустить хвост цикла
   //blah-blah
   break;  //выход из цикла
}