运算符
(1)算术运算符 +,-,*,/,%,++,--
A:%
**当左边的绝对值小于右边:结果是左边
**当左边的绝对值等于右边或者是右边倍数的时候:结果是0
**当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
**取余的正负号取决于左边,右边忽略不记
**用途:任意正整数%2 结果是要么0,要么1。用于切换条件
B:++,--
int a = 3;
int b = a++; //当++在变量的后面,会先从变量中把值取出来,进行运算,赋值,输出
System.out.println(a);
System.out.println(b);
**递增,递减运算符。就是加1或者减1
**单独存在,放在操作数的前面或者后面,结果一样
**参与运算时:
***放在操作数的前面,先自身加或者减1,然后再参与运算
***放在操作数的后面,先参与运算,然后再自身加或者减1
C:+
**作为数据的符号(正号)
**做加法运算
**字符串连接符"5 + 5 =" + (5 + 5);
(2)赋值运算符
A:=:赋值运算符 把右边的值赋给左边
**举例:int x = 3; 把3赋给int类型变量x
int a,b,c;
a = b = c = 5;
B:+=:加赋值运算符 把左边和右边的和赋给左边
**举例:int x = 3; x+=2;等同于 x = x + 2;
**问个问题 byte b = 5;
b = b + 2;
b += 2; b = (byte)(b + 2);
System.out.println(b);会不会报错?
**+=运算符在给b赋值时,自动完成了强转操作。
(3)比较运算符
A:==,!=,>,<,>=,<=
B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
(4)逻辑运算符
int x = 5;
x > 6 & x < 10
/*
逻辑与运算符 &
第一个条件 第二个条件 结果
true true true
false true false
true false false
false false false
简单记:左右两边同时为true,结果为true。
*/
/*
逻辑或运算符 |
第一个条件 第二个条件 结果
true true true
false true true
true false true
false false false
简单记:左右两边只要有一个结果是true,结果为true。
*/
/*
逻辑异或运算符 ^
第一个条件 第二个条件 结果
true true false
false true true
true false true
false false false
简单记:左右两边相同,结果为false。
*/
/*
逻辑非运算符 !
!true false
!false true
!!true true
*/
/*
短路与:
&:左边无论什么结果,右边都执行。
&&:左边为false,右边不执行,结果为false。
int x = 10;
x > 11 && x < 15
短路或:
|:左边无论什么结果,右边都执行。
||:左边为true,右边不执行,结果为true。
*/
(5)位运算符2<<3 2 * 8 == 2 * 2^3
<<一个整数向左移动几位就乘以2的几次幂
>>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1
>>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0
(6)三元运算符
A :(条件表达式)?表达式1:表达式2;
**如果条件为true,运算后的结果是表达式1;
**如果条件为false,运算后的结果是表达式2;
B:条件运算符运算完之后一定有一个结果
int x,y,z;
x = 5;
y = 10;
z = x > y ? x : y;
if(x > y) {
z = x;
}else {
z = y;
} |
|