2016-04-27 17 views
-4

Dies ist keine Hausaufgabenfrage. Es ist eine meiner Praktiken. Bitte hilf mir zu verstehen, wo ich falsch gemacht habe. Das Original war static void changeArray, aber ich habe es in static int changeArray geändert und am Ende eine return-Anweisung eingefügt, aber es wird immer noch nicht den Hauptcode aktualisieren.Was ist falsch mit meiner Rückkehr Aussage und statische Methode

public class Test {

/* 
* 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

Sie geben den Rückgabewert von 'changeArrray()' an nichts zurück. Es sollte 'Schlüssel' in Ihrer Hauptmethode zugewiesen werden. –

Antwort

0

Sie müssen die Schlüsselvariable in der Hauptmechanismus der Rückkehr von changeArray einzustellen. Da der Schlüssel ein primitiver Typ ist, wird er in der Methode changeArray in der Hauptmethode nicht geändert. Ändern Sie den Aufruf von changeArray wie folgt. key = changeArray (Schlüssel, Array)

+0

aber der Return-Schlüssel ist da, also warum wird der Schlüssel nicht zurückgegeben? – PiP