每次index等于n就清零是如何保证原来的顺序不被打乱的呢?

import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请输入排成一圈的人数:");
int n = s.nextInt();
boolean[] arr = new boolean[n];
for(int i=0; i arr[i] = true;
}
int leftCount = n;
int countNum = 0;
int index = 0;
while(leftCount > 1) {
if(arr[index] == true) {
countNum ++;
if(countNum == 3) {
countNum =0;
arr[index] = false;
leftCount --;
}
}
index ++;
if(index == n) {
index = 0;
}
}
for(int i=0; i<n; i++) {
if(arr[i] == true) {
System.out.println("原排在第"+(i+1)+"位的人留下了。");
}
}
}
}
大神好,请问 if(index == n) {
index = 0; 到底怎么想出来的,每次index等于n就清零是如何保证原来的顺序不被打乱的呢?
万分感谢!

index 其实就是数组的索引,与顺序没有关系,无论进行多少轮,还是会遍历所有人,原来的人还是不变,就是被标记而已,循环时跳过被标记的人