Все циклы for можно преобразовать в циклы while, используя следующий шаблон:
for (..xxx..; ..yyy..; ..zzz..) {
..aaa..
}
становится
...xxx...
while (...yyy...) {
..aaa..
..zzz..
}
помните, что
for (;;) {
..aaa..
}
эквивалентно
for (nop; true; nop) {
..aaa..
}
где «nop» означает отсутствие операций.
В вашем примере это делает ваш цикл:
for(;;current =(current+1)%n){
if(eliminated[current%n]){
continue;
}else{
inkiPinki++;
if(inkiPinki == m){
eliminated[current%n] = true;
printStatus(eliminated, people);
remainingGuys--;
break;
}
}
}
эквивалентно
// no initialzation needed
while(true) {
//if(eliminated[current%n]){
// continue;
//}else{
if(!eliminated[current%n]){
inkiPinki++;
if(inkiPinki == m){
eliminated[current%n] = true;
printStatus(eliminated, people);
remainingGuys--;
break;
}
}
current =(current+1)%n;
}
Оттуда вы можете упростить его, если хотите.