java - void 函数的返回值

标签 java

<分区>

我正在学习 Java,据我了解,您需要指定函数返回的值。如果它不返回值,那么它就是无效的。 但是在下面的程序中,我可以通过 void 函数更改数组的值。谁能给我解释一下吗?

 public class ArraysInMethods {
    public static void main(String args[]){
        int rd[] = {2,3,4,5,6};
        change(rd);

        for(int y: rd){
            System.out.println(y);
        }

    }

    public static void change(int x[]){
        for(int counter = 0; counter<x.length;counter++){
            x[counter]+=5;
        }
    }

}

最佳答案

I'm learning Java, and from what I learned, is that you need to specify the value that a function return.

这仅适用于返回值的方法,即 void 以外的方法。这些方法定义表达式,而void 方法定义语句

调用您的change 方法是一个声明,因为它没有返回值。但是,这并不意味着它不能更改正在运行的程序的状态 - 例如,为变量赋予不同的值。

However in the below program, I'm able to change the values of an array from a void function.

您没有从 void 函数返回值;您所做的就是就地修改数组。这是允许的,因为数组是通过引用传递的。

关于java - void 函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454924/

相关文章:

java - 我怎样才能使它与 Java 泛型一起工作

java - JSON 对象在数组中意外重复

java - Android Studio 1.2.2 发出 100,000 行警告和错误,尽管日志级别为 "W"

java - 使用Java解析xml文件

java - 如何使用 for 语句获取数组或数组列表中的所有 n 组三个连续元素?

java - JME 3 + Swing,多 Canvas

java - Eclipse IDE 在处理时失败,甚至使用 "JVM Terminated. Exit code=1"

java - 在 Java 中使用 POI 时如何增加 Excel 计算引擎的限制?

java - Servlet.service() for servlet [dispatcher] in context with path [/***] throw exception

java - Spring不兼容的版本?