接下来我会举例说明
public class test{
public static void main(String[] args){
int i = 3;
/*
创建一个变量i,里面放i的初始值3,先开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为3
*/
i ++;//i自身加1,此时i的值为4
System.out.print(i);//打印输出i,因为i没有被调用,故输出i自身的值4
System.out.print(i++);
/*
上一行代码中i的值已经变成了4,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为4,i自身的值+1变为5;
i++被输出调用,故输出存储区的值4
*/
int j = i++;
System.out.print(j);
/*
上一行代码中i的值已经变成了5,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为5,i自身的值+1变为6;
i++被赋值调用,故输出存储区的值5
*/
System.out.print(i);//没被调用,故打印值为i自身的值6
i = i++;
System.out.print(i);
/*
上一行代码中i的值已经变成了6,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为6,i自身的值+1变为7;
i++被赋值调用,故输出存储区的值6
*/
i = i++;
System.out.print(i);
/*
上一行代码中i的值为6,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为6,i自身的值+1变为7;
i++被赋值调用,故输出存储区的值6
*/
}
}
同理可得 i - - 的计算方法如下,
先开批一个临时存储区
将 i 的值复制到存储区
i 自身 -1
临时存储区的值等待被调用(参与运算、输出、赋值)
若 i 被调用则输出值为 i ,否则输出 i - -
举例说明
public class test01{
public static void main(String[] args){
int i = 5;
/*
创建一个变量i,里面放i的初始值5,先开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为5 */
i--;//i自身减1,此时i的值为4
System.out.println(i);//打印输出i,因为i没有被调用,故输出i自身的值4
System.out.print(i--);
/*
上一行代码中i的值已经变成了4,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为4,i自身的值-1变为3;
i--被输出调用,故输出存储区的值4
*/
int j = i--;
System.out.print(j);//3
/*
上一行代码中i的值已经变成了4,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为4,i自身的值-1变为3;
i--被赋值调用,故输出存储区的值3
*/
System.out.print(i);//没被调用,故打印值为i自身的值3
i = i--;
System.out.print(i);//2
/*
上一行代码中i的值已经变成了3,再开辟一个临时存储区,
将i的值复制到存储区,此时存储区里面i的值为3,i自身的值-1变为2;
i--被赋值调用,故输出存储区的值2
*/
}
}
认识+ + i 与 - - i
++i 读作加加i,--i读作减减i,分别称作前置自增操作符和前置自减操作符。
相对于i++来说,++i 的运算思路比较简单,只进行简单的+1操作即可。
举例说明:
public class test{
public static void main(String[] args){
i = 1;
j = i++ + ++i + ++i + i++;
// 1 3 4 4
/*
i++: 赋值调用,故打印值为1,临时存储区放的值为2
++i:i的值+1,故值为3
++i:i的值+1,故值为4
i++:赋值调用,故输出临时存储区的值4,i自身值+1为5
*/
System.out.print(j);//故输出结果为12
System.out.print(i);//没有参与调用,故输出i自身的值5
System.out.print(++i);//输出值为6