2016-10-20 13 views
0

Ich möchte wissen, warum in diesem Beispiel Wert [3] 6 und nicht 5.Verständnis für Schleifen und Array-Indizes

Wenn i = 3 sollte nicht Wert [i], die 3: 2 hinzugefügt werden, (3-1) um 5 zu geben?

int[] values = new int[5]; 
for (int i = 1; i < 5; i++) 
    values[i] = i + values[i-1]; 
+3

Probieren Sie 'System.out.println()' Anweisungen zur Fehlerbehebung aus. –

+0

@PatrickJAbareII oder ein Debugger. – MordechayS

Antwort

3

Zuerst ist, lesen Sie über default values. Da es geschrieben, den Standardwert des int Typ 0.

Also, wenn Sie Ihre int Array in der ersten Zeile initialisieren:

int[] values = new int[5]; 

Sie eine Reihe von Größe 5, die durch Nullwerte hält erstellen -default: values = {0,0,0,0,0}.

Nun lässt in Hand zu den Iterationen weitergehen:

  • Wenn i = 1: values[1] = 1 + values[0] (die mit einem Standard-int Wert von 0 initialisiert wird, wie erklärt) = 1.
  • Wenn i = 2: values[2] = 2 + values[1] = 2 + 1 = 3.
  • Wenn i = 3: values[3] = 3 + values[2] = 3 + 3 = 6.
+0

Was macht i-1? – SummerBoy

+0

@FlyingMonkey in der ersten Iteration? es erhält den Wert von Werten [0], der standardmäßig auf 0 initialisiert wird. – MordechayS

+0

in der dritten Iteration, sollte nicht i-1 2 geben, da 3-1 = 2? – SummerBoy

3

folgende Zuordnungen vorgenommen werden:

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

So ist die value[3] tatsächlich 6.

-2

int [] values ​​= new int [5];

< ===== Bei diesem Index 5 Wert 6 (0,1,2,3,4,5)

der Index der sechs, weil Index Start von 0; Diese

+0

verbringen Sie einige Zeit in der Bearbeitung der Antwort und machen es lesbar. – Sid

+0

Sie können hier die falsche Antwort geben. Oder Sie verpassen hier vielleicht einen Teil der Antwort. – Makoto

0

ist, was Ihr Array-Wert aussieht, nachdem die Schleife läuft mit dem indexs unter:

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

Also, wenn die Schleife i bekommt = 3 wie folgt aus:

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

seiner gleichen als Sprechen

values[3] = 3 + 3 

da der Wert des Index-Werte bei 2 3

Verwandte Themen