for循环中变量i是否固定?

img


如图,给数组排序时,如果数组的值发生了交换,比如原本a[i]=a[1]=4,和a[i]=a[2]=2交换以后,那2是变成a[1]然后排到4前面,还是2依旧是a[2]只是排到了前面?

如果2从a[2]变成了a[1],那下一次循环从for(2)开始是不是就会跳过a[1]=2比较?

可能这样说不太清楚,毕竟2确实是小的,已经排到了前面,比不比较无所谓。但比如a[0],a[1],a[2]是9.8.6三个数,一次比较一个数只能换一次位置,那第一次循环for(0)比较后,9就会跑到后面去,变成8.6.…9,8就会改变位置,那原本a[i]的值是否改变?如果变了,那第二次循环for(1)开始,比较的数组元素下标就从a1开始,岂不是漏了8?

还是说for循环int 的i 从一开始就分配给了每个数组元素,即便改变位置,i的值也不会变?

不是刚学java,但基础有点差,表达的可能不太明白,希望有人可以帮忙解答一下,谢谢。