2016-04-27 14 views
-4

これは宿題に関する質問ではありません。それは私の習慣の一つです。私がどこで間違っていたのか理解してください。元はstatic void changeArrayでしたが、static int changeArrayに変更し、最後にreturnステートメントを挿入しましたが、それでもメインコードは更新されません。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()'の戻り値は何にも割り当てられていません。あなたのメインメソッドで 'key'に代入する必要があります。 –

答えて

0

あなたはchangeArrayからのリターンにあなたの主な方法で重要な変数を設定する必要があります。キーはプリミティブ型なので、changeArrayメソッドでキーを変更しても、メインメソッドで変更されることはありません。 changeArrayの呼び出しを次のように変更します。 key = changeArray(key、array)

+0

しかし、リターンキーがあるので、キーが返されないのはなぜですか? – PiP

関連する問題