原题目不用说了,答案就是最后一句for循环,结果为0 1 2 3 4 5 6 7 8 9
但是只是前两句会输出什么呢
int []a = new int[10];
for(int i = 0; i < 10; ++i)
a[i] = 9-i;
for (int i = 0; i < 10 ;++i) {
a[i] = a[a[i]];
System.out.println(a[i]);
}
先告诉你结果,
我一开始笔算的是
a0= 9 a0=a[a[0]]=a[9]=0
a1=8 a1=a[a[1]]=a8=1
a2=7 a2=a[a[2]]=a7=2
a3=6 a3=a[a[3]]=a6=3
a4=5 a4=a[a[4]]=a5=4
a5=4 a5=a[a[5]]=a4=5
a6=3 a6=a[a[6]]=a3=6
a7=2 a7=a[a[7]]=a2=7
a8=1 a8=a[a[8]]=a1=8
a9=0 a9=a[a[9]]=a0=9
以上是我笔算的结果,认为也会输出0 1 2 3 4 5 6 7 8 9
但是但是but and but 你是不是也是这么认为的?这么认为的留下标记(可以点个赞hhhhhhhh),证明不是我一个人这么想。。。。。
看下面的也许你一下就懂了
a0= 9 a0=a[a[0]]=a[9]=0 a0=a9
a1=8 a1=a[a[1]]=a8=1 a1=a8
a2=7 a2=a[a[2]]=a7=2 a2=a7
a3=6 a3=a[a[3]]=a6=3 a3=a6
a4=5 a4=a[a[4]]=a5=4 a4=a5
看这个,是因为前面循环的时候, a【5】已经等于a【4】了所以接下来的你一定明白了
如果看懂了,点个赞再走吧~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~