为什么这个 return 不是一遍又一遍的新值? java

Why doesn't this return a new value over and over? java

public static int someFunc(int a, int b){
    while(a <=b){
        a+= 1;
        return a;
    }
    return b;
}

所以我期待它一遍又一遍地 return 新值但它没有,一旦我执行代码并亲眼看到,我意识到它与按值传递或按值传递有关参考这是我不太明白的东西!有人可以解释吗?

眼前的问题是 return returns!之后什么都不能执行。您不能在其中包含无条件 return 的有意义的循环。

至于另一个,没有。这不是问题,因为您 return 是 anew 值。您传入的 a 保持不变,即您所说的 reference/value 的传球。 Java 是传值。

public class JHelp {

    public static void main(String...args) {
        JHelp j = new JHelp();
        int a = 1;
        System.out.print(j.f(a));
        System.out.print(a);
    }

    int f(int a ) {
        a += 1;
        return a;
    }
}

会给你一个输出:

21

因为 return 指令退出代码,因此方法完成了它的工作,一旦它到达 return 指令就需要再次迭代,但是如果 return 未达到指令。