为什么这个 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 是 a
的 new 值。您传入的 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 未达到指令。
public static int someFunc(int a, int b){
while(a <=b){
a+= 1;
return a;
}
return b;
}
所以我期待它一遍又一遍地 return 新值但它没有,一旦我执行代码并亲眼看到,我意识到它与按值传递或按值传递有关参考这是我不太明白的东西!有人可以解释吗?
眼前的问题是 return
returns!之后什么都不能执行。您不能在其中包含无条件 return 的有意义的循环。
至于另一个,没有。这不是问题,因为您 return 是 a
的 new 值。您传入的 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 未达到指令。