JAVA-运算符与表达式

运算符与表达式

1)数学运算:+ - * / % ++ --

  1. 注意事项:
  1. +  -  *  / 两端的变量必须是同种类型,并返回同种类型。
  2. % 取余运算,负数的余数符号与被模数符号相同, - 1 % 5 = - 1,1 % - 5 = 1;Num % n,n>0,结果范围[0,n),是周期函数。
  3. 注意整除问题:1 / 2 = 0(整数的除法是整除)1.0 / 2 = 0.5   1D / 2 = 0.5
  4. 单独的前、后自增或自减是没区别的,有了赋值语句或返回值,则值不同!

eg1:自增自减

int a = 1;  a = a++;  System.out.println("a的值:"+a);

第1步:后++,先确定表达式a++的值(当前a的值)  a++ ---->1    

第2步:++,给a加1                              a  ---->2

第3步:最后赋值运算,把a++整个表达式的值赋值给a  a  ---->1

a被赋值两次,第1次a = 2,第2次把1赋值给1

eg2:自增自减

x,y,z分别为5,6,7  计算z + = -- y * z++ ;// x = 5,y = 5,z = 42

z = z + -- y * z++  à  42 = 7 + 5 * 7  从左到右入栈,入的是值

eg3:取出数字的每一位

d = num%10;//获取num的最后一位数 num/=10; //消除num的最后一位

2)位运算:&  |  ~(取反) ^(异或)>>  <<  >>>

注意事项:

  1. 一个数异或同一个数两次,结果还是那个数。
  2. |:上下对齐,有1个1则为1;&:上下对齐,有1个0则为0;(都为二进制)
  3. &相当于乘法,| 相当于加法;&:有0则为0,| :有1则为1,^:两数相同为0,不同为1。

3)关系运算符:>  <  >=  <=  ==  !=

4)逻辑运算符:&&  ||(短路)  !  &  |

eg:短路运算:&&:前为flase,则后面不计算;|| :前为true,则后面不计算

int x=1,y=1,z=1;

if(x--==1 && y++==1 || z++==1) //  || 短路运算后面的不执行了!

System.out.println(“x=”+x+”,y=”+y+”,z=”+z);//  0 , 2, 1

5)赋值运算符:=  +=  -=  *=  /=  %=

eg:正负1交替   

扫描二维码关注公众号,回复: 2765903 查看本文章
int flag= -1;  System.out.println(flag*=-1); ……

6)条件运算符:表达式1 ? 表达式2 :表达式3

  1. 注意事项:右结合性:a > b ? a : i > j ? i : j 相当于 a > b ? a : ( i > j ? i : j )

7) 运算符优先级:括号 > 自增自减 >  ~ !  > 算数运算符 > 位移运算 > 关系运算 > 逻辑运算 > 条件运算 > 赋值运算

猜你喜欢

转载自blog.csdn.net/joxlin/article/details/81627592