[英]Is this explanation correct for the output of the following postfix increment coding
我遇到了这种编码...只是想确认一下我对如何接收输出121的了解。
System.out.print(i++ + obj1.operation(i));
在上面的代码中, i
为零,但是当将其作为参数传递给操作方法时, i
变为一。 在方法操作中,system.out.print打印出一个,并将后增量值2返回到上述system.out.print
。 在上面的代码中,将i的初始值和方法的返回值相加,即0+2=2
,并打印出2。并且在上述代码中,main方法中的局部变量i已增加为1,因此下一条print语句打印1.这是正确的说明吗?
public class CalculatorJava {
public static void main(String[] args) {
int i = 0;
CalculatorJava obj1 = new CalculatorJava();
System.out.print(i++ + obj1.operation(i));
System.out.println(i);
}
public int operation(int i) {
System.out.print(i++);
return i;
}
}
在这种情况下,不仅主要方法而且操作方法都使用局部变量。 因此,我们可以将它们视为两个不同的变量。 我们将main中的“ i”称为“ mi”,将操作中的“ i”称为“ oi”。 上面代码的简化算法如下:
1: assign 0 to mi
2: increase mi by one
4: assign the value of mi to oi
5: increase oi by one
6: print mi and oi
7: print mi
我假设您知道print方法中的加号不是代数的。
正如您在下面的示例代码中看到的那样,如果我们更改i的范围,则将使两种方法使用相同的变量。 输出将是122
而不是121
public class CalculatorJava {
static int i = 0;
public static void main(String[] args) {
CalculatorJava obj1 = new CalculatorJava();
System.out.print(i++ + obj1.operation());
System.out.println(i);
}
public int operation() {
System.out.print(i++);
return i;
}
}
进一步阅读: 局部变量和范围
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.