2016-10-20 3 views
0

ループと配列インデックスの理解としない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]; 
+3

トラブルシューティングに 'System.out.println()'ステートメントを使ってみてください。 –

+0

@PatrickJAbareIIまたはデバッガ。 – MordechayS

答えて

3

で、およそdefault valuesをお読みください。あなたがサイズ5の配列を作成

int[] values = new int[5]; 

によってゼロ値を保持している。そこに書かれたとして、あなたが最初の行にあなたのint配列を初期化すると 、int型のデフォルト値は、だから、0

です-default:values = {0,0,0,0,0}

次に、イン・ハンド反復に移動することができます:

  • i = 1values[1] = 1 +(説明したように、0のデフォルトint値で初期化される)values[0] =
  • i = 2values[2] = 2 + values[1] = 2 + 1 =
  • i = 3values[3] = 3 + values[2] = 3 + 3 =
+0

i-1は何をするのですか? – SummerBoy

+0

最初の繰り返しで@FlyingMonkey?値0の値を取得します。これはデフォルトで0に初期化されます。3回目の反復で – MordechayS

+0

、3-1 = 2なのでi-1に2を与えるべきではありませんか? – SummerBoy

3

次の割り当てが行われます。

values[1] = 1 + 0 (= 1) 
values[2] = 2 + 1 (= 3) 
values[3] = 3 + 3 (= 6) 
... 

だからvalue[3]は確かにまず6.

-2

のint []の値=新しいINT [5]。この指標5の値に

< ===== 6(0,1,2,3,4,5)

ある指標の6であるため、0からインデックス開始。

+0

答えを編集して読みやすくするのに時間を費やします。 – Sid

+0

あなたはここで間違ったことに答えるかもしれません。または、あなたはここで答えの塊を見逃しているかもしれません。 – Makoto

0

これは、ループは下indexsで実行した後にどのように見えるか、あなたの配列の値である:

[0][1][3][6][10] 
0 1 2 3 4 

ので、ループはこのように私= 3になったとき:

values[3] = 3 + values[3-1]; 

その同じインデックス2での値の値が3

あるので

values[3] = 3 + 3 

を言うように

関連する問題