循环后的Java数组

时间:2018-02-25 13:33:17

标签: java arrays

你能告诉我a[i] = a[a[i]]是如何运作的吗?

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]]

for(int i =0; i < 10; i++)

1 个答案:

答案 0 :(得分:1)

第一个for loop完成执行后的

这个数组看起来像

a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
    |    |    |    |    |    |    |    |    |    
 9  | 8  |  7 |  6 |  5 |  4 |  3 |  2 |  1 | 0
________________________________________________

...并在第二个for循环完成后执行 这个数组如何看起来像

a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
    |    |    |    |    |    |    |    |    |    
 0  | 1  |  2 |  3 |  4 |  4 |  3 | 2  |  1 | 0

<强>更新

快速查看后{p> a[i]=ia[i]=[a[i]]相同,但不是a array ...第二个循环中a array中的前四个元素将由旧a array中的最后四个元素更改,因此我们更改了.MODEL SMALL .STACK 1000H .CODE MAIN PROC MOV DX, 0002H MOV CX, 0064H BODY: MOV DX, 0002H MOV BX, 0064H SUB BX, CX MOV AX, BX DIV DL CMP AH, 1H JNE GO PRINT: MOV AX, BX ADD AX, 0H AAA OR AX, 3030H ROL AX, 1 ROL AX, 1 ROL AX, 1 ROL AX, 1 ROL AX, 1 ROL AX, 1 ROL AX, 1 ROL AX, 1 MOV DL, AL MOV AH, 2H INT 21H MOV AX, BX ADD AX, 0H AAA OR AX, 3030H MOV DL, AL MOV AH, 2H INT 21H GO: LOOP BODY MAIN ENDP END 中前四个元素的最后四个元素将与第一个相同,但在向后