我对编程很新。但是,我写了一个名为“succ”的方法,它给给定的参数加1。它看起来像这样:
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.有人可以帮助我吗?我做错了什么?
提前致谢。
答案 0 :(得分:2)
您没有对返回的值执行任何操作。如果您想将其分配回x
,请执行以下操作:
x = succ(x);
编辑或者,或许你的意思是添加到x
,因为你是在循环中进行的?它不是完全清楚这段代码的意图,我怀疑更多适用的变量/方法名称会有所帮助。但是如果你想继续添加结果,你只需要这样做:
x += succ(x);
此外,您无需修改x
功能中的succ
。以这种方式这样做可能在将来的其他示例中导致意外行为。保持操作尽可能简单。只需返回计算值:
return x + 1;
答案 1 :(得分:0)
您错过了 succ 方法的返回值,请将succ(x);
替换为x = succ(x);
int add(int x, int y) {
for(int i = 0; i < y; i++) {
x = succ(x);
}
return x;
}
答案 2 :(得分:0)
您将使用函数的返回值覆盖x值。您需要在每次迭代中添加它,而不是覆盖它。