温馨提示:本文仅适用于有一定Java代码编写基础人士回顾相关知识,讲解并不详述。如您希望通过代码回顾相关知识或了解相关用法,那么本文适用。
自增、自减都分别对应++、--操作,但是它们分别放在变量前和变量后的含义略有不同,实现的操作结果也不一样。比如:a++、++a、a--、--a。
先从代码示例中了解它们之间的区别:
package com.javase.data_option;
/*
自增、自减操作原理:a++、a--、++a、--a
1、在单独使用的时候a++与++a、a--与--a运行结果并无差别,都是原来a的基础上+1或者-1得到的结果。
2、在做操作的时候,int j = a++(a--),首先第一步将a原来的值赋值给j;第二步对a做+1(或者-1)操作,并将值赋值给a。
3、在做操作的时候,int j = ++a(--a),首先第一步对a做+1(或者-1)操作,并将值赋给a;第二步将新得到的a值赋给j。
*/
public class AutoPlus {
public static void main(String[] args){
int a = 10;
// // 1、a++与++a单独使用 结果一致
// /*
// a++; // a = a+1 = 10+1 = 11
// System.out.println("a++后a的值:"+a); // 结果:11
// */
// ++a; // a = a+1 = 10+1 = 11
// System.out.println("++a后a的值:"+a); // 结果:11
// // 2、a++与++a用来做操作 结果不一致
// /*
// int j = a++; // ①先将a=10赋给j,此时j=10;②再将a进行+1操作,此时a=a+1=10+1=11
// System.out.println("j=a++时j的值:"+j); // 结果:10
// System.out.println("a的值为:"+a); // 结果:11
// */
// int j = ++a; // ①先将a进行+1操作,此时a=a+1=10+1=11;②将此时的a=11赋值给j,j=11
// System.out.println("j=++a时j的值:"+j); // 结果:11
// System.out.println("a的值为:"+a); // 结果:11
// // 3、做自减操作原理同自增
// int j = a--; // ①先将a=10赋给j,此时j=10;②再将a进行-1操作,此时a=a-1=10-1=9
// System.out.println("j=a--时j的值:"+j); // 结果: 10
// System.out.println("a的值为:"+a); // 结果:9
// 练习: y的值是多少? 提示:将a++分为上文所述两步拆分可解
int y = a++ + a++ + a++; // y = 10 + 11 + 12 = 33
System.out.println(y); // 结果:33
System.out.println(a); // 结果:13
}
}
在Java基础阶段,理解a++与++a,可以这样理解:
int j = a++,就是先将a的值赋给j,再做自增运算;
int j = ++a,就是先将a做自增运算,再将自增后的a值赋给j。相信从示例中也能理解一二。
对于a++与++a的理解,的确是难点。不过可以通过示例中的分成两步的方法来理解。
对于Java进阶学习阶段,就可以从JVM底层进行理解了。这里还属于基础阶段,不作高深解释。对++a与a++区别十分好奇的同伴可以去看看我之前的博客。