白话JAVA的自加(++)自减(--)运算

背景:在实验楼学到运算符号这一章的时候看到自加自减的含义和举例懵逼了,作为JAVA小白实在是理解不能,百度搜索出来的基本上也都不是写给小白看的,苦思良久,终于能理解下来,所以写出来分享给跟我一样的初学者,粗看之下又有点困惑的朋友。
JAVA的自加自减运算分成两种情况运算符号在变量前(++x, --x)和在变量后(x++, x–)。

  1. 当运算符号在变量前面时,代表先进行该变量+1或-1运算再赋值。例如:
	int a = 3;
	System.out.println("The value is: "+(++a));

++a的意思就是先计算a+1的值,再把这个值4输出到控制台,这时候变量a的值也是4。

  1. 当运算符号在变量后面时,代表先把变量的值输出,再对变量自身进行+1或者-1的运算。例如:
	int b = 2;
	System.out.println("The value is: "+(b++));

b++的意思就是先把b的值2输出到控制台,再对b进行+1计算,这时候b的值是3。

下面扩展一下,举几个例子,应该能理解的更深入。

例1:

int a = 5;
int b = 3;
int c = 3;
int d = 3;
	System.out.println("a++ = "+(a++));
	System.out.println("++a = "+(++a));
	System.out.println("b-- = "+(b--));
	System.out.println("--b = "+(--b));
	System.out.println("c++ = "+(c++));
	System.out.println("++d = "+(++d));

这段代码输出的结果如下:

a++ = 5 //首先打印a的值5,然后再对变量进行+1计算,这时a=6
++a = 7 //首先对变量a=6进行+1计算,然后再打印计算值7,这时a=7
b-- = 3 //首先打印b的值3,然后再对变量进行-1计算,这时b=2
--b = 1 //首先对变量b=2进行-1计算,然后再打印计算值1,这时b=1
c++ = 3 //首先打印c的值3,然后再对变量进行+1计算,这时c=4
++d = 4 //首先对变量d=3进行+1计算,然后再打印计算值4,这时d=4

例2:

int a = 1;
a=a++ + ++a; //1+(1+1+1)=4
int b = 1;
b= ++b + b++ + b++ + b++; //(1+1)+2+(2+1)+(3+1)=11
int c = 1;
c=c++ + c++ + c++ + ++c; //1+(1+1)+(2+1)+(1+3+1)=11
int d = 1;
d=++d + ++d; //(1+1)+(1+2)=5
	System.out.println("a = "+a);
	System.out.println("b = "+b);
	System.out.println("c = "+c);
	System.out.println("d = "+d);

输出结果如下:

a = 4 //1+(1+1+1)=4
b = 11 //(1+1)+2+(2+1)+(3+1)=11
c = 11 //1+(1+1)+(2+1)+(1+3+1)=11
d = 5 //(1+1)+(1+2)=5

例3:

int a = 3;
int b = 3;
	a++;
	System.out.println("a = "+a);
	System.out.println("b++ = "+(b++));
	++a;
	System.out.println("a = "+a);
	System.out.println("++b = "+(++b));

输出如下:

a = 4
b++ = 3
a = 5
++b = 5

例4:

int a = 1;
int b = 1;
for(int c = 0; c < 3; c++) {
	System.out.println("c = "+c);
	a++;
	System.out.println("a = "+a);
	++b;
	System.out.println("b = "+b);
}

输出如下:

c = 0
a = 2
b = 2
c = 1
a = 3
b = 3
c = 2
a = 4
b = 4

例5:

int num[][] = new int[3][3];
int c = 0;
for(int a = 0; a < 3; a++){
	System.out.println("a = "+a);
	for(int b = 0; b < 3; b++){
		System.out.println("b = "+b);
		System.out.println("c = "+c);
		num[a][b] = c++;
		System.out.println("c = "+c);
	}
}

输出如下:

a = 0
b = 0
c = 0
c = 1
b = 1
c = 1
c = 2
b = 2
c = 2
c = 3
a = 1
b = 0
c = 3
c = 4
b = 1
c = 4
c = 5
b = 2
c = 5
c = 6
a = 2
b = 0
c = 6
c = 7
b = 1
c = 7
c = 8
b = 2
c = 8
c = 9
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章