ループと配列インデックスの理解としない5私はこの値の例[3] 6である理由を知りたい
I = 3は、この値はならない場合には[I] 3 2に添加することがされています(3-1)と反応させて5α-
int[] values = new int[5];
for (int i = 1; i < 5; i++)
values[i] = i + values[i-1];
ループと配列インデックスの理解としない5私はこの値の例[3] 6である理由を知りたい
I = 3は、この値はならない場合には[I] 3 2に添加することがされています(3-1)と反応させて5α-
int[] values = new int[5];
for (int i = 1; i < 5; i++)
values[i] = i + values[i-1];
で、およそdefault valuesをお読みください。あなたがサイズ5の配列を作成
int[] values = new int[5];
によってゼロ値を保持している。そこに書かれたとして、あなたが最初の行にあなたのint
配列を初期化すると 、int
型のデフォルト値は、だから、0
です-default:values = {0,0,0,0,0}
。
次に、イン・ハンド反復に移動することができます:
i = 1
:values[1]
= 1 +(説明したように、0のデフォルトint
値で初期化される)values[0]
=i = 2
:values[2]
= 2 + values[1]
= 2 + 1 =i = 3
:values[3]
= 3 + values[2]
= 3 + 3 =i-1は何をするのですか? – SummerBoy
最初の繰り返しで@FlyingMonkey?値0の値を取得します。これはデフォルトで0に初期化されます。3回目の反復で – MordechayS
、3-1 = 2なのでi-1に2を与えるべきではありませんか? – SummerBoy
次の割り当てが行われます。
values[1] = 1 + 0 (= 1)
values[2] = 2 + 1 (= 3)
values[3] = 3 + 3 (= 6)
...
だからvalue[3]
は確かにまず6.
これは、ループは下indexsで実行した後にどのように見えるか、あなたの配列の値である:
[0][1][3][6][10]
0 1 2 3 4
ので、ループはこのように私= 3になったとき:
values[3] = 3 + values[3-1];
その同じインデックス2での値の値が3
あるのでvalues[3] = 3 + 3
を言うように
トラブルシューティングに 'System.out.println()'ステートメントを使ってみてください。 –
@PatrickJAbareIIまたはデバッガ。 – MordechayS