2、算术运算符(7个):
+(加):加法运算,字符串链接,正号
-(减)
*(乘)
/(除):获取的是商
%(取模):获取的是余数
++ (自增)
--(自减)
-------------------------------------
关于a++和++b的区别
自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!
PS:% 用来求余数,也称为”取模运算符“
int a=5;
int b=a++;//将a赋值给左边的变量b,然后再执行自增
System.out.println("a:"+a);//此时b是5,a是6
System.out.println("b:"+b);
int a=5;
int b=++a;//a先执行自增,然后将值赋给左边的变量b
System.out.println("a:"+a);//此时a是6,b是6
System.out.println("b:"+b);
-------------------------------------------a++和++b的的运算练习题:
【推理题】
1. int x = 2; int y = 3;
int res3 = (x++)*2+(--y)%3+(--x)/4+(++y)*3;
X=(2)、3、2 Y=(3)、2、3
=2*2 + 2%3 +2/4 +3*3 (2%3 不能除,拿回2做结果,2/4=0.5直接当0)
=4+2+0+9
=6+9
=15
-------------------------------------------------------------------
int res4 = (--x)/3-(y++)*2+(x++)%2-(y--)%3;
X=(2)、1、2、 Y=(3)、4、3
=1/3 - 3*2 + 1%2 - 4%3 注意:1%2 不能除,拿回1做结果,1/3 =0
=0-6+1-1
=-6
-------------------------------------------------------------------
请推断res3,res4,x,y此时的值。
2.
int a = 2; int b = 3;
int res1 = ((a++)+(++b))*2+(--a)%(b++)-(++a)*3+(--b)/(--a);
请推断res1,a,b此时的值。
A=(2)、3、2、3、2 B=(3)、4、5、4、
= (2+4)*2 +2%4 -3*3 +4/2 (先算括号在算*2,2%4不能除,拿回2做结果, 4/2=2)
=12 + 2- 9+2
=7
【计算题】
每一题都是初始化 a = 3, b = 4;
计算下面表达式,求结果值,并计算出最后的a,b值
---------------------------------------------------------------------
【计算题】初始化值 a = 3, b = 4;
那就拿第一题算算,每一步左边是算式的结果,右边是a,b经过算式后的结构:
1.(a++)/3+(--b)*2-(a--)%6+(b++)*3-(b--) //a++ 在运算里还是原来的值,但记录在a变量里是加1后的值
A:(3)、4、3、 B: (4)、3、4、3
= 3/3 + 3*2 + 4%6 + 3*3 - 4 (4%6 不能除,拿回4做结果)
=1+6+0+9-4
=8
-----------------------------------------------------------------
2.(++b)*2-(a--)%4+(a++)*5-(--b)/2+(--a) 老师答案: 17 a=2 b=4
A=(3)、2、3、2 B=(4)、5 、4
= 5*2 -3%4 +2*5 -4/2 + 2 (3%4 不能除,拿回3做结果)
= 10- 3 + 10 -2+2
= 17
------------------------------------------------------------------------------------
3.(a--)*6+(b++)/3-(--a)*2-(--b)*2+(++a) 老师答案:11 a=2 b=4
A=(3)、2、1、2 B=(4)、 5、4
= 3*6 + 4/3 - 1*2 -4*2 + 2
= 18+1-2-8+2
= 11