2016-12-05 4 views
-5

Ich schrieb das Programm unten, um mit Arrays zu spielen.Java: Arrays, was passiert hier?

public class Tester{ 
    public static void main (String[]args){ 
     int [] nums = {1,3,6,1,2}; 

     System.out.println(nums[0]); 
     System.out.println(nums[nums[1]]); 
    } 
} 

Ausgang:

1 
1 

Was in der zweiten Print-Anweisung geschieht? Ich kann es immer noch nicht herausfinden. Wenn ich die [1] mit 6 oder 2 schalten, bekomme ich einen Fehler, aber nicht 3.

+2

nums [1] ist 3. Jetzt nimmst du den Wert 3 als Parameter für nums []. nums [3] ist auch 1 genauso wie nums [0] – XtremeBaumer

+2

was ist da so komisch? – Mritunjay

Antwort

3

nums[1] gleich 3 und nums[3] gleich 1 ist, so dass Ihre zweite Zeile die Zeile druckt, die den Index hat, der Wert in nums[1] gespeichert das heißt, 3.

nums[0] = 1; 
nums[1] = 3; 
nums[2] = 6; 
nums[3] = 1; <-- nums[nums[1]] 
nums[4] = 2; 

Sie erhalten einen Fehler mit System.out.println(nums[nums[6]]);, weil Sie auf eine Position außerhalb des Bereichs des Arrays zugreifen. Das gleiche passiert mit System.out.println(nums[nums[2]]); weil nums [2] = 6.

+1

nums [4] ist 2 nicht 1 – XtremeBaumer

+0

Sorry ich meinte 'nums [3]', bearbeitet. – AntoineB

+1

Ich habe Ihrer Antwort einige Informationen hinzugefügt. Sie können sie entfernen oder in eigene Wörter ändern. – dreamcrash