0

私はこのコードを持っています:

int[] tab2 = {1, 2, 3, 4, 5, 6 ,7, 8, 9, 0};
for(int i : tab2)
    System.out.print(i + " ");

int[] tab3 = {1, 2, 3, 4, 5, 6 ,7, 8, 9, 0};
for(int i : tab3)
    System.out.print(tab3[i] + " ");

最初のループは私に123 4 5 6 7 890を与えます

2番目のものは私に234 5 6 7 8 901を与えます

どうして?配列の最初のインデックスは0ではありませんか?

4

3 に答える 3

2

2番目のループの最初の反復では、は..にi等しく1、したがって。tab3[i]です2

于 2012-10-07T05:21:30.023 に答える
0

2番目のループでは、tab3の項目から見て値を出力しています。

tab3[tab3[0]], tab3[tab3[1]], tab3[tab3[2]], ...
于 2012-10-07T05:28:53.707 に答える
0

いずれの場合も、forループによりi、配列内の各値が使用されます。最初のループは、予想どおり、これらの各値を出力します。

ただし、2番目のループでは、値がtab3[]配列へのインデックスとして使用されます。

値1、2、3、4、5、6、7、8、9、0iをとると、出力される
値は、、tab3[1]... tab3[2]、、でありtab3[0]
これは、あなたが書いたように、2、3、4、5です。 、6、7、8、9、0、1。

i次のように、0から9までの値をループすると、期待した値が得られます。

for (i = 0;  i < 10;  ++i) 
  System.out.print(tab3[i] + " ");
于 2012-10-07T05:29:30.047 に答える