------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
今天复习了一下有关运算符方面的知识,其实运算符学起来并不是很难,知识知识会比较细一些,有时候会记混,或者有些知识会想不起来,今天就总结一下运算符的相关知识,正好大家也一起复习一下 。
首先学习算数运算符,算数运算符包括+,-,*,/,%,++,--;我们操作的时候“+”有三种表示:正号,加法,字符串连接符; 模以“ %”是指两数相除,得到余数; 自增自减“++,--”有一些规则单独使用时:在操作数的前后,效果一致,参与操作使用:在操作数前,先++或者--,再参与操作。在操作数后,先参与操作,再++或者--。
然后是赋值运算符,赋值运算符包括=,+=,-=,*=,/=,%=;“=”是指把右边赋值给左边;“+=,-=,*=,/=,%=”是指把左边和右边操作后赋值给左边。这里需要注意一下,赋值的左边不能是常量,很多人会出现这种错误。
比较运算符包括==,!=,>,>=,<,<=;比较运算符的结果肯定是boolean布尔类型,千万不要把“==”写成“=”一定要注意一下,后期操作的时候很多人会这样写,请一定压迫记住。
逻辑运算符包括 &, |,^,!,&&,||;“&”是指与,操作时有false则false;“|”是指或,操作时有true则true;“^”是指异或,操作时相同为false,不同为true;“!”是指非,操作时非false则true,非true则false,偶数次!不改变以前的真假;“&&”是指双与,操作时和“&”的结果一样,但是具有短路效果,左边有false,右边不执行;“||”是指双或,操作时和“|”的结果一样,但是具有短路效果。左边有true,右边不执行。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISNyQTOwEjMwEDOxgDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
位运算符包括&,|,^,~,<<,>>,>>>;是需要我们理解的,必须把所有的数据转换为二进制来进行操作。“^”对同一个数据异或同一个数两次,被异或的数本身不变。举例: 数据交换,假设a,b是已经知道的int类型的变量。
方式1
int temp = a;
a = b;
b = temp;
方式2
左边a,b,a
右边a^b
a = a ^ b;
b = a ^ b;
a = a ^ b;
左移“<<”就是把数据向左移动,后边补0,其实相当于乘以2的移动位数次幂;右移“>>”就是把数据向右移动,左边补是最高位的值,其实相当于除以2的移动位数次幂;无符号右移“>>>”就是把数据向右移动,左边补0,其实相当于除以2的移动位数次幂。
三元运算符格式:比较表达式?值1:值2;执行流程:如果比较表达式是true,结果是值1;如果比较表达式是false,结果是值2;案例:
A:比较两个数是否相同
int a = 10;
int b = 20;
boolean c = (a == b)?true:false;
System.out.println(c);
B:获取两个数中的最大值
int a = 10;
int b = 20;
int c = (a>b)?a:b;
System.out.println(c);
C:获取三个数据中的最大值
int a = 10;
int b = 20;
int c = 30;
int temp = (a>b)?a:b;
int max = (temp>c)?temp:c;
System.out.println(max);
if (a>b){
if(a>c){
System.out.println(a);
}else{
System.out.println(c);
}
}else{
if (b>c){
System.out.println(b);
}else{
System.out.println(c);
}
}
D:做C题目的时候,还可以练习三元运算符的嵌套: int max = (a>b)?(a>c?a:c):(b>c?b:c);
运算符需要大家用心去掌握,不要忘记一些特殊的知识,这样在后期的草错中,我们才会避免那些不必要的错误,减轻负担。