2016-04-27 2 views
-4

Это не вопрос домашней работы. Это один из моих практик. Пожалуйста, помогите мне понять, где я ошибся. Оригинал был static void changeArray, но я изменил его на static int changeArray и вставил оператор return в конце, но он все равно не будет обновлять основной код.Что случилось с моим заявлением о возврате и статическим методом

общественного класса испытаний {

/* 
* Change the method to also update the key at the main 
*/ 

static int changeArray(int key, int array[]){ 

    key = key + 7; 

    for (int i = 0; i < array.length; i++){ 
     array[i] = array[i] + key; 
    } 

    System.out.println("*At changeArray *"); 
    System.out.println("The key is: "+ key); 
    return key; 

} 

static void printArray(int array[]){ 

    System.out.print("[ "); 
    for (int element:array){ 
     System.out.print(element + " "); 
    } 
    System.out.println("]"); 
} 

public static void main(String[] args){ 
    int key = 5; 
    int[] array = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19}; 

    System.out.println("*At the main *"); 
    System.out.println("The key is: "+ key); 

    printArray(array); 
    changeArray(key, array); 

    System.out.println("*At the main *"); 
    System.out.println("The key is: "+ key); <--- (this is supposed to be 12 after the method is called, but it keeps printing out 5) 
    printArray(array); 
} 

}

+0

Вы не присваиваете возвращаемое значение 'changeArrray()' ни к чему. Он должен быть назначен «ключ» в вашем основном методе. –

ответ

0

Вам необходимо установить ключевой переменной в основной метод возвращения из changeArray. Поскольку ключ является примитивным типом, его изменение в методе changeArray не изменит его в вашем основном методе. Измените ваш changeArray на следующее. key = changeArray (key, array)

+0

, но ключ возврата есть, так почему же не возвращается ключ? – PiP

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