2016-12-05 5 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 

Что происходит во втором заявлении для печати? Я все еще не могу понять. Если я переключить [1] с 6 или 2, я получаю сообщение об ошибке, но не 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]]);, потому что вы обращаетесь к позиции вне диапазона массива. То же самое происходит с System.out.println(nums[nums[2]]);, потому что nums [2] = 6.

+1

nums [4] is 2 not 1 – XtremeBaumer

+0

Извините, что я имел в виду 'nums [3]', отредактированный. – AntoineB

+1

Я добавил некоторую информацию в свой ответ, не стесняясь удалить ее или изменить ее на свои собственные слова. – dreamcrash

Смежные вопросы