如何从其他方法访问java中的方法?
问题描述:
我对编程非常陌生。但是,我写了一个名为“succ”的方法,它给给定的参数加1。它看起来像这样:如何从其他方法访问java中的方法?
int succ(int x) {
return x += 1;
}
现在我应该写另一种方法,使用我的第一种方法添加2个数字。这是我的尝试看起来像:
int add(int x, int y) {
for(int i = 0; i < y; i++) {
succ(x);
}
return x;
}
不幸的是,它似乎并没有工作;它总是返回最初的x。例如:如果我输入add(8,5),它会返回8.有人可以帮我吗?我究竟做错了什么?
在此先感谢。
答
你没有对返回值做任何事情。如果你想为它分配回x
,做到这一点:
x = succ(x);
编辑:或者,也许你的意思是添加到x
,因为你在一个循环做什么呢?这完全不是清楚这个代码的意图是什么,我怀疑更多适用的变量/方法名称会有所帮助。但是,如果你想保持增加的结果,你只是这样做:
x += succ(x);
此外,您不需要修改x
在succ
功能。以这种方式这样做可能会在其他示例中导致未来出乎意料的行为。尽可能简化操作。刚刚回归的计算值:
return x + 1;
+0
非常感谢,那就是解决方案。还要感谢关于在我的'succ'函数中修改'x'的建议! – Shinubi
答
你缺少SUCC方法的返回值,更换succ(x);
与x = succ(x);
int add(int x, int y) {
for(int i = 0; i < y; i++) {
x = succ(x);
}
return x;
}
答
你不断从返回值覆盖x值功能。您需要在每次迭代中添加它,而不是覆盖它。
尝试做'x = succ(x)'。另外,阅读这个https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value?rq=1 –
哦哇,它的工作。我不敢相信我没有想到这一点。非常感谢! – Shinubi
欢迎编程!你真的很好。作为答复也张贴会推荐你参考[这个链接](http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value?rq=1) –