java - 这种解释对于以下后缀增量编码的输出是否正确?
问题描述
我遇到了这个编码......并且只想确认我理解如何接收输出 121。
System.out.print(i++ + obj1.operation(i));
在上面的代码中,i
是零,但是i
当它作为参数传递给操作方法时变成一。在方法操作中 system.out.print 打印出一个并将后增量值 2 返回到 above system.out.print
。
在上面的代码中,i 的初始值和方法的返回值 ie 相加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;
}
}
解决方案
public class CalculatorJava {
public static void main(String[] args) {
int i = 0;
CalculatorJava obj1 = new CalculatorJava();
System.out.print(i++ + obj1.operation(i));
//In the above statement, the variable i has a value 0,
//then it is incremented by 1 and becomes 1,
//when passed as an argument in the operation() method.
//So, it is: print(0 + operation(1))
//operation(1) returns 2
//Therefore, the above statement **prints 2**
//i++ will basically use the initial value of i and
//then increment its value by 1
System.out.println(i);
//Since i=1, the above statement **prints 1**
}
public int operation(int i) {
//i=1
System.out.print(i++);
//The above statement **prints 1** and then increments the value of i by 1
//So, it is: print(1), i=1+1=2
//2 is returned
return i;
}
}
因此,总输出为:121
推荐阅读
- php - 如何在继承的类中设置父类变量的值,然后在继承的函数中使用它?
- sql-server - 当 LAST_VALUE 的 LastUpdated 时间在条件范围内时,不显示任何行
- css - 如何在背景图像之后放置线性渐变?
- gatling - 在 Gatling 中通过 alt 查找图像 src
- r - 将列动态添加到 R 中的数据框
- java - Vscode:跨越多行 System.out.print()
- wagtail - 删除页面后如何自动删除链接到页面的图像?
- google-sheets - 查找条件总和以确定库存表中剩余的已售单位数
- flutter - 在 Dart 中使用过渡在屏幕之间导航
- groovy - Groovy Builder 转换真的有效吗?