2016-12-05 99 views
-5

我寫了下面的程序來玩弄數組。Java:數組,這裏發生了什麼?

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]]); 
    } 
} 

輸出:

1 
1 

什麼在第二個print語句是怎麼回事?我仍然無法弄清楚。如果切換了[1]具有6個或2,I得到一個錯誤但不能3.

+2

nums [1]是3.現在您將值3作爲nums []的參數。 nums [3]也是1就像nums [0] – XtremeBaumer

+2

那裏有那麼奇怪? – Mritunjay

回答

3

nums[1]等於3,和nums[3]等於1,所以你的第二行打印出具有值被存儲在nums[1]索引中的線,這是3

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

您與System.out.println(nums[nums[6]]);得到一個錯誤,因爲你正在訪問的位置出數組的範圍。因爲nums [2] = 6,所以同樣發生System.out.println(nums[nums[2]]);

+1

nums [4]是2 not 1 – XtremeBaumer

+0

對不起,我的意思是'編號[3]',編輯。 – AntoineB

+1

我在回答中添加了一些信息,可以隨意將其刪除或將其更改爲您自己的單詞。 – dreamcrash