首先以一个数组反转程序为例,该程序对一个数组进行了两次反转,分别使用了while循环和for循环:
public class ArrayReversTest {
public static void main(String[] args) { //数组元素反转
int[] num = new int[] {12, 14, 456, 67, 45, 567};
int min = 0;
int max = num.length-1;
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + ", ");
}
System.out.println("\n=====================");
while(min < max) { //第一次反转
int change = num[min];
num[min] = num[max];
num[max] = change;
min++;
max--;
}
for(min = 0, max = num.length - 1; min < max ; min++, max--) { //第二次反转
int change = num[min];
num[min] = num[max];
num[max] = change;
}
for(int i = 0; i < num.length; i++) {
System.out.print(num[i] + ", ");
}
}
}
如果把while循环变成
while(min < max) { //第一次反转
min++;
max--;
int change = num[min];
num[min] = num[max];
num[max] = change;
}
那么数组第一个数和最后一个数是没有进行反转的