都说**基础不牢地动山摇**,还真是那么回事!别小看这运算符,每个语法中运算符扮演者举足轻重的角色,稍微没用对,那可就犯了大错误!
接下来跟随小梦,迈着**轻松且愉快**的步伐一起看看运算符的那些事吧~
🌊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);//11
System.out.println(5+'6');//59
//字符串的拼接:
//规则:+左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串
int num = 56;
System.out.println("num="+num);//"num=56" ---> num=56
System.out.println(5+6+"7");//11+"7"--->"117" --->117
System.out.println(5+'6'+"7");//59 +"7"--->"597" --->597
System.out.println("5"+6+"7");//"56"+"7" --->"567"--->567
System.out.println("5"+'6'+"7");//"56"+"7"--->"567"--->567
System.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+1
a = 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
🌊运算符的优先级别
在这里呢小梦提醒大家,不要可以区级运算符的优先级,我们要在实际运用中逐渐去掌握,水到渠成。其实实际中我们也不会去写一些非常复杂的表达式,怎么方便我们怎么写。
**优先级关系:**赋值<三目<逻辑<关系<算术<单目
文章对小伙伴们有帮助的话,请给小梦一个👍一个吧~ 感谢家人们~
版权归原作者 超梦梦梦梦 所有, 如有侵权,请联系我们删除。