为啥这不会一遍又一遍地返回一个新值?爪哇
Posted
技术标签:
【中文标题】为啥这不会一遍又一遍地返回一个新值?爪哇【英文标题】:Why doesn't this return a new value over and over? java为什么这不会一遍又一遍地返回一个新值?爪哇 【发布时间】:2015-08-04 20:56:13 【问题描述】:public static int someFunc(int a, int b)
while(a <=b)
a+= 1;
return a;
return b;
所以我期待它一遍又一遍地返回新值,但它没有,一旦我执行代码并亲眼看到,我意识到它与按值传递或按引用传递有关,这是我不知道的真懂!有人可以解释吗?
【问题讨论】:
为什么它会一遍又一遍地返回一个新值?你了解return
语句是什么以及做什么吗?
我正在编辑它,因为它对问题没有意义。请不要重新编辑它。如果您不同意,您可以标记以供审核或发布在元数据上。不要在你的问题中加入噪音。阅读帮助中心。
@SotiriosDelimanolis 我相信我有,但由于我们有一个 while 循环,我很困惑,因为 while 循环的条件仍然为真,因此我期待 while 循环的主体能够被执行超过
return
语句停止执行它出现的方法。
@SotiriosDelimanolis 所以如果我写了以下 someFunc(int a, int b) if (a
【参考方案1】:
直接的问题是return
返回!之后就什么都不能执行了。您不能有一个有意义的循环,其中包含无条件返回。
至于另一个,没有。这不是问题,因为您返回 a
的 new 值。您传入的a
保持不变,这是您所说的通过引用/值传递。 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
【讨论】:
【参考方案2】:因为返回指令退出代码,因此方法完成了它的工作,一旦到达返回指令就需要再次迭代,但是如果没有到达返回指令,我会这样做。
【讨论】:
以上是关于为啥这不会一遍又一遍地返回一个新值?爪哇的主要内容,如果未能解决你的问题,请参考以下文章
为啥在反应的“useState”钩子中一遍又一遍地设置初始状态