|
解析
初始化数组d,给数组v赋值为false。
这里可以理解为,数组v是数组d
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | false | false | false | false | false | false | false | false | false | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
-
当i= 0时,j=i=0 v[j]=v[0] = false,
a). v[0]=true; j=d[0]=7
b). v[j]=v[7]=true j=d[7]=8
c). v[j]=v[8]=true j=d[8]=0 (v[0]已经为true,不会运行if,构成循环了,即d的0→7→8→0)
每结束一次if,cnt+1,即cnt=1;
第一轮结束后,变成
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | false | false | false | false | false | false | true | true | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
-
开始第二轮,i=1开始。
a). v[1]=true; j=d[1]=1(和起始值一样了,构成循环了,即d的1→1)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | true | false | false | false | false | false | true | true | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
每结束一次if,cnt+1,即cnt=2;
-
开始第三轮,i=2开始。
a). v[2]=true; j=d[2]=4
b). v[4]=true; j=d[4]=2
c). v[2](v[2]已经为true,不会运行if,构成循环了,即d的4→2→4)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | true | true | false | true | false | false | true | true | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
每结束一次if,cnt+1,即cnt=3;
-
开始第四轮,i=3开始。
a). v[3]=true; j=d[3]=3
b). v[3](v[3]已经为true,不会运行if,构成循环了,即d的3→3)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | true | true | true | true | false | false | true | true | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
每结束一次if,cnt+1,即cnt=4;
-
开始第五轮,i=4开始。
a). (v[4]已经为true,不会运行if,退出)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | true | true | true | true | true | false | true | true | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
没有运行if,cnt=4;
-
开始第六轮,i=5开始。
a).v[5]=true j=d[5]=5
b)v[5] ( (v[5]已经为true,不会运行if,退出, d的5→5)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | true | true | true | true | true | false | true | true | false | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
每结束一次if,cnt+1,即cnt=5;
-
开始第七轮,i=6开始。
a). v[6]=true j=d[6]=9
b). v[9]=true j=d[9]=6
c). v[9]( v[9]已经为true,不会运行if,退出, d的6→9→6)
每结束一次if,cnt+1,即cnt=6;
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
v | true | true | true | true | true | true | true | true | true | true | |
d | 7 | 1 | 4 | 3 | 2 | 5 | 9 | 8 | 0 | 6 |
截止到这里,整个v数组都为false了,不会再运行if语句了,所以cnt不会再增加了。故最后结果是cnt=6;