Java-按值传递示例
我有一个关于Java按值传递的问题。我知道在方法之外声明的变量不会改变它们的值,因为当我对变量调用I方法时,该方法将只使用分配给它们的值。但在这种情况下,我不理解为什么int result没有得到2的值。As increment将获得x的值,so 1将其递增1,并将值存储在结果变量中Java-按值传递示例,java,methods,pass-by-value,Java,Methods,Pass By Value,我有一个关于Java按值传递的问题。我知道在方法之外声明的变量不会改变它们的值,因为当我对变量调用I方法时,该方法将只使用分配给它们的值。但在这种情况下,我不理解为什么int result没有得到2的值。As increment将获得x的值,so 1将其递增1,并将值存储在结果变量中 public class Increment { public static void main(String[] args) { int x = 1; System.o
public class Increment {
public static void main(String[] args) {
int x = 1;
System.out.println("Before the call, x is " + x);
int result = increment(x);
System.out.println("After the call, x is " + result);
}
public static int increment(int n) {
return n++;
}
}
后增量运算符n++将n的值递增1,但返回上一个值。因此,递增x返回x,而不是x+1。尝试返回++n;相反,根据@eran的评论,要获得所需的内容,您需要使用++n。然后,请参见,i++在for循环中如何有用?@yy123q在for循环中,您不会将i++返回的值分配给变量。您只需在i++调用后检查i的值,这将为您提供递增的值。