【问题标题】:what's wrong with my return statement and static method [duplicate]我的返回语句和静态方法有什么问题[重复]
【发布时间】:2016-08-21 01:14:05
【问题描述】:

这不是作业问题。这是我的一种做法。请帮助我了解我在哪里做错了。原来是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);
}

}

【问题讨论】:

  • 您没有将changeArrray() 的返回值分配给任何东西。它应该在你的 main 方法中分配给key

标签: java methods syntax parameters return


【解决方案1】:

您需要将 main 方法中的 key 变量设置为 changeArray 的返回值。由于 key 是原始类型,因此在您的 changeArray 方法中更改它不会在您的 main 方法中更改它。将您的 changeArray 调用更改为以下内容。 key = changeArray(key, array)

【讨论】:

  • 但是return key在那里,为什么没有返回key呢?
猜你喜欢
  • 2020-06-27
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 2021-12-17
  • 2017-09-28
  • 2023-03-31
  • 2015-08-14
相关资源
最近更新 更多