都说基础不牢地动山摇,还真是那么回事!别小看这运算符,每个语法中运算符扮演者举足轻重的角色,稍微没用对,那可就犯了大错误!
接下来跟随小梦,迈着轻松且愉快的步伐一起看看运算符的那些事吧~
运算符的那些事
🌊Java 语言支持的运算符
💧算术运算符
💧赋值运算符
💧扩展赋值运算符
💧关系运算符
💧逻辑运算符
💧条件运算符
🌊运算符的优先级别
🌊Java 语言支持的运算符
- 算术运算符
+,-,*,/,%,++(自增),--(自减)
- 赋值运算符
=
- 扩展赋值运算符
+=,-=,*=,/=
- 关系运算符
>,<,>=,<=,==,!=
- 逻辑运算符
&,|, &&,||,!,^
- 条件运算符
&,|,^,~ , >>,<<,>>>
- 位运算符
?:
前面看到了JAVA支持这么多的运算符,运算符用的秒能简化不少的代码!认真复习一波~
💧算术运算符
/ 除法运算符 : 表示两个数相除运算
% 取余运算符 : 用来求余数的
public class TestOpe01{public static void main(String[] args){//打印结果:System.out.println(12/3);System.out.println(12%5);System.out.println(12/3.0);System.out.println(12%5.0);}
}
+ :表示正数,表示相加操作,进行字符串的拼接
public class Test03{public static void main(String[] args){//表示正数:System.out.println(+5);//5//相加操作:System.out.println(5+6);//11System.out.println(5+'6');//59//字符串的拼接://规则:+左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串int num = 56;System.out.println("num="+num);//"num=56" ---> num=56System.out.println(5+6+"7");//11+"7"--->"117" --->117System.out.println(5+'6'+"7");//59 +"7"--->"597" --->597System.out.println("5"+6+"7");//"56"+"7" --->"567"--->567System.out.println("5"+'6'+"7");//"56"+"7"--->"567"--->567System.out.println("5"+'6'+'7');//"56"+'7'--->"567"---567}
}
++: ++单独使用的时候,无论放在前还是后,都是加1操作。参与到运算中的时候,看++在前还是在后,如果++在后:先运算,后加1。如果++在前,先加1,后运算。
int a = 5;
a++;//理解为:相当于 a=a+1 操作a = 5;
++a;//理解为:相当于 a=a+1 操作a = 5;
int m = a++ + 7;//先运算 m=a+7 再加1: a = a+1a = 5;
int n = ++a + 7;//先加1 a=a+1 再运算: n = a+7
💧赋值运算符
=:将等号右侧的值赋给等号左侧
int a = 30;
int b = 50;
💧扩展赋值运算符
a+=b 和 a=a+b 区别:
a+=b 可读性稍差 编译效率高 底层自动进行类型转换
a=a+b 可读性好 编译效率低 手动进行类型转换
没想到小小运算符还有这等区别,别慌下面还有,我们接着看~
💧关系运算符
相信大家不管是学习中,还是工作中关系运算符的使用频率那是杠杠滴!小梦直接上代码带大家温习一遍,如有不清楚的请小伙伴们多练习练习~
//>,<,>=,<=,==,!=
//关系运算符最终结果:要么是true要么是false
System.out.println(5>11);//false
System.out.println(5<11);//true
System.out.println(5>=11);//false
System.out.println(5<=11);//true
System.out.println(5==11);//false
System.out.println(5!=11);//true
System.out.println((5<11)!=(9==12));//true
注意!关系运算符最终结果:要么是true要么是false
💧逻辑运算符
逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值。要么是true,要么false。
逻辑与 &:只要有一个操作数是false,那么结果一定是false
短路与 &&:效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false
逻辑或 |:只要有一个操作数是true,那么结果一定是true
短路或 ||:效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true
逻辑非 !:相反结果
逻辑异或 ^:两个操作数相同,结果为false,不相同,结果为true
// 逻辑与 &:只要有一个操作数是false,那么结果一定是false
System.out.println(true&true);
System.out.println(true&false);
System.out.println(false&false);
System.out.println(false&true);// 短路与 &&:效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false
System.out.println(true&&true);
System.out.println(true&&false);
System.out.println(false&&false);
System.out.println(false&&true);// 逻辑或 |:只要有一个操作数是true,那么结果一定是true
System.out.println(true|true);
System.out.println(true|false);
System.out.println(false|false);
System.out.println(false|true);// 短路或 || :效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true
System.out.println(true||true);
System.out.println(true||false);
System.out.println(false||false);
System.out.println(false||true);//逻辑非!:相反结果
System.out.println(!true);//false
System.out.println(!false);//true//逻辑异或^ :两个操作数相同,结果为false,不相同,结果为true
System.out.println(true^true);
System.out.println(true^false);
System.out.println(false^false);
System.out.println(false^true);
💧条件运算符
三目运算符 格式:a?b:c
其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果
- 如果a的结果是true,那么表达式最终结果为b
- 如果a的结果是false,那么表达式最终结果为c
🌊运算符的优先级别
在这里呢小梦提醒大家,不要可以区级运算符的优先级,我们要在实际运用中逐渐去掌握,水到渠成。其实实际中我们也不会去写一些非常复杂的表达式,怎么方便我们怎么写。
优先级关系:赋值<三目<逻辑<关系<算术<单目
文章对小伙伴们有帮助的话,请给小梦一个👍一个吧~ 感谢家人们~