java基础自增自减符

java基础自增自减符基本介绍 自增 和自减 运算符是对变量在原始值的基础上进行加 1 或减 1 的操作 它们都有前缀和后缀两种形式 前缀就是 在前面 后缀就是 在后 面 前缀先自增 减 后缀后自增 减 前缀 形式的运算规则可以概括为 先自增 减 后引用 如 a 后缀 形式的运算规则可以概括为 先引用 后自增 减 如 a 这里所说的 引用 指的是使用变量的值 将值放入操作栈

大家好,我是讯享网,很高兴认识大家。



基本介绍

自增(++)和自减(--)运算符是对变量在原始值的基础上进行加1或减1的操作。

它们都有前缀和后缀两种形式。

前缀就是++在前面,后缀就是++在

前缀先自增(减),后缀后自增(减)

前缀形式的运算规则可以概括为:“先自增(减),后引用”,如 ++a

后缀形式的运算规则可以概括为:“先引用,后自增(减)”,如 a++。

这里所说的“引用”,指的是使用变量的值,将值放入操作栈的动作。

另外,我们还要强调一个细节:无论是前缀形式还是后缀形式,自增自减运算符的优先级要 > 赋值运算符。

一、仅有++或--

 1 public class Test1 {  2  3 public static void main(String[] args) {  4 int a=2;  5 a++;  6 System.out.println(a);//输出3  7 int b=2;  8 ++b;  9 System.out.println(b);//输出3 10  } 11 }
讯享网

可以看到,当仅做++或--时,不管是后缀式a++,还是前缀式++b,输出的结果都是一样的。因为仅自身++或--,并不会有“引用”,也就是不会有操作栈的动作。

二、++或--运算结果赋值给其他变量

讯享网 1 public class Test1 {  2  3 public static void main(String[] args) {  4 int a=2;  5 int b=a++;  6 System.out.println(a);//输出3  7 System.out.println(b);java基础自增自减符//输出2  8 int c=2;  9 int d=++c; 10 System.out.println(c);//输出3 11 System.out.println(d);//输出3 12  } 13 }

当有赋值或加减等操作时,就会用到操作栈。

a=2 b=a++ 是后缀式,“先引用,后自增(减)”

第①步:先把a的值2,放入操作栈

第②步:a再自增变成3

第③步:将操作栈里的值2赋值给b

c=2 d=++c 是前缀式,“先自增(减),后引用”

第①步:c先自增变成3

第②步:再把c的值3,放入操作栈

第③步:将操作栈里的值3赋值给b

再来看下运算后再赋值的

1 public class Test1 { 2 3 public static void main(String[] args) { 4 int a=2; 5 int b=++a + ++a; 6 System.out.println(a);//输出4 7 System.out.println(b);//输出7 8  } 9 }

++a 是前缀式,“先自增(减),后引用”

第①步:a先自增变成3

第②步:再把a的值3,放入操作栈1

第③步:a再自增变成4

第④步:再把a的值4,放入操作栈2

第⑤步:把操作栈1中的数据3和操作栈2中的数据4相加,赋值给b

讯享网1 public class Test1 { 2 3 public static void main(String[] args) { 4 int a=2; 5 int b=++a + a++; 6 System.out.println(a);//输出4 7 System.out.println(b);//输出6 8  } 9 }

和上面相比,a++ 是后缀式,“先引用,后自增(减)”

就是上面第③步和第④步互换,先将a的值3放入操作栈2,所以输出的是3+3=6。

三、++或--运算结果赋值给自身

 1 public class Test1 {  2  3 public static void main(String[] args) {  4 int a=2;  5 a=++a;  6 System.out.println(a);//输出3  7 int b=2;  8 b=b++;  9 System.out.println(b);//输出2 10  } 11 }

++a 是前缀式,“先自增(减),后引用”,所以是先自增为3,再把3放入操作栈,最后把操作栈中的3赋值给a。

b++ 是后缀式,“先引用,后自增(减)”,所以是先将b的值2放入操作栈,再自增为3,最后把操作栈中的2赋值给b。

再看个复合赋值运算+=

当语句中以复合赋值运算符给变量赋值的时候,计算机会先把复合赋值运算符左边变量的值存入操作数栈。

1 public class Test1 { 2 3 public static void main(String[] args) { 4 int a=2; 5 a+=++a + ++a; 6 System.out.println(a);//输出9 7  } 8 }

前面已经讲到,++a + ++a的值为7,计算机先把a的值2放入操作栈1,再把右边的计算结果存入操作数栈2,最后把操作数栈1和操作数栈2中的数值相加,赋值给a,所以是2+7=9。

小讯
上一篇 2024-12-29 08:45
下一篇 2024-12-30 07:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5270.html