2016-04-27 59 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()'的返回值赋值给任何东西。它应该被分配到你的主要方法中的'key'。 –

回答

0

你需要在你的主要方法来设置的关键变量,从changeArray回报。由于key是一种基本类型,因此在changeArray方法中更改它不会在主方法中更改它。将您的changeArray调用更改为以下内容。 key = changeArray(key,array)

+0

但返回键在那里,那为什么没有键被返回? – PiP