运算符
程序中用于运算、赋值、比较等功能的一些特殊符号
运算符分为以下几类:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三目运算符
算术运算符
- + :用于数值相加或者字符串的拼接
- - 和 * :只能用于数值运算
- / : 整数相除抛弃小数部分,小数相除结果为小数
/*除法运算*/
System.out.println(a / b);// 3/2=1,整除,抛弃小数部分
System.out.println(3 / 2);
//System.out.println(3 / 0);//整除除以0不会报编译错误,但是会报运行时错误“/ by zero”
System.out.println(3.2 / 2);
System.out.println((float) 3/2);//被除数或除数是浮点数类型,结果也就浮点数
System.out.println(3.5 / 0);//浮点数相除,除数为0不会报运行时异常,而是得到无穷大(Infinity)
- % :取模运算,即取余数;
整数取模时也不能除数为0,会报运行异常;
小数取模结果为小数;
小数取模,除数为0时,得到结果NaN(not a number)
- ++ 和 – :自增和自减运算
++在后面,在语句结束后自增1;
++在前面,在语句前面自增1;
--同理
int i = 5;
int j = 5;
i++;
++j;
System.out.println("++在后面时:"+ i++);
System.out.println("++之后:"+i);
System.out.println("++在前面时:"+ ++j);
赋值运算符
- = :右边赋值给左边
- += :x+=5——>x=x+5
- -= 、/= 、%= 、*= :同上
比较运算符
> , < , == , != , >= , <=
逻辑运算符
&(与),|(或),!,&&,||
- $ :两个为真结果为真
- | : 两个为假结果为假
- !: 取反
- && :前面部分如果为假了(从左到右),后续语句直接不运行了
- || :前面部分如果为真了(从左到右),后续语句直接不运行了
实际开发中用短路与&&和短路或||代替与&和或|
位运算符
二进制进行,每位进行运算
- & :按位与
- | :按位或
- ~ :按位非
- ^ :按位异或(不同为1,相同为0)
- << :左位移
- >> :右位移
- >>> :无符号右移
三目运算符
(条件表达式)?结果1:结果2
如果条件表达式为真,返回结果1,如果条件表达式为假,返回结果2
可以拼接,多个三目运算符拼接
int age = 11;
System.out.println(age > 18 ? "成人" : age > 12 ? "青少年" : "儿童" );
运算符的优先级
()>单目>算术>位移>比较>逻辑>赋值