23、运算符
*算术运算符
*关系运算符
*逻辑运算符
*赋值类运算符
*字符串连接运算符
*三元运算符
-算术运算:
+ 求和
– 相减
* 乘积
/ 商
% 求余数【取模】
++ 自加1
— 自减1
重点:++ –运算
int k=10;
k++;
int y=10;
++y;
自加运算总结:++运算可以出现在变量前也可以出现在变量后,无论
是变量前还是变量后只要++运算结束,该变量中的值
一定会自加1。
//++出现在变量后,先赋值,后自加(自减)1
int a=100;
int b=a++;
System.out.println(a);//101
System.out.println(b);//100
//++出现在变量前,先自加(自减)1,后赋值
int m=20;
int n=++m;
System.out.println(m);//21
System.out.println(n);//21
int c=100;
System.out.prinln(c++);//100
System.out.println(c);//101
int a=100;
System.out.println(++a);//101
System.out.println(a);//101
-关系运算符:
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
关系运算符的运算结果一定是布尔类型:true/false
关系运算符的运算原理:
int a=10;
int b=10;
a>b; 比较的时候,比较的是a中保存的10这个值和b中保存的10这个值之间的大小比较。
a==b 也是如此。
-逻辑运算符:
& 逻辑与(两边的算子都是true,结果才是true)
| 逻辑或(两边的算子只要有一个是true,结果就是true)
! 逻辑非(取反,!false就是true,!true就是false,这是一个单目运算符)
^ 逻辑异或(两边的算子只要不一样,结果就是true)
&& 短路与
|| 短路或
注意事项:
-逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型。
-短路与和逻辑与最终的结果是相同的,只不过短路与存在短路现象。
-短路或和逻辑与最终的结果是相同的,只不过短路或存在短路现象。
-什么时候发生短路现象?
-什么时候选择使用逻辑与运算符?什么时候选择使用短路与运算符?
若不确定优先级,使用括 。
//逻辑与和短路与
int x=10;
int y=8;
//逻辑与
System.out.println(x<y & ++x < y);
System.out.println(x);//11
//逻辑与和短路与
int x=10;
int y=8;
//短路与
System.out.println(x<y && ++x < y);//x<y结果是false,整个表达式结果已经确定是false
//所有后面的表达式没有再执行,这种现象被称为短路现象。
//短路与才会有短路现象,逻辑与是不会存在短路现象的。
System.out.println(x);//10
//从某个角度来看,短路与更智能,由于后面的表达式可能不执行,
所以执行效率更高,这种方式在实际的开发中使用较多,短路与比逻辑与
使用的多,短路与更常用。
但是,在某些特殊的业务逻辑当中,要求运算符两边的算子必须全部执行,
此时必须使用逻辑与,不能使用短路与,使用短路与可能导致右边的表达
式不执行。
-赋值运算符
*赋值类运算符包括两种:
*基本的赋值运算符
=
*扩展的赋值运算符
+= 【+=运算符可以翻译为“追加/累加”】
-=
*=
/=
%=
byte x=10;
x=x+5; //编译 错
x+=5;//编译通过 等同于:x=(byte)(x+5),其实并不等同于:x=x+5
-重要结论:扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的类型是
byte类型,无论 怎么进行追加或追减,最终该变量的数据类型还是byte类型。
-字符串连接运算符
关于java中的“+”运算符:
(1)、+运算符在java语言当中有两个作用:
*加法运算,求和
*字符串的连接运算
(2)、当“+”运算符两边的数据都是数字的话,一定是进行加法运算。
(3)、当“+”运算符两边的数据只要有一个数据是字符串,一定会进行字符串连接运算。
并且,连接运算之后的结果还是一个字符串类型。
数字+数字—>数字【求和】
数字+ ”字符串“—>”字符串”【字符串连接】
(4)、在一个表达式中出现多个”+“,在没有添加小括 的前提下,遵循至左向右的顺序依次运算。
例如:
System.out.println(10+20);//结果是30
System.out.println(10+20+30);//结果是60
System.out.println(10+20+”30″);//结果是2030
System.out.println(10+(20+”30″));//结果是102030
-三元运算符/三目运算符/条件运算符
1、语法规则:
布尔表达式?表达式1:表达式2
2、三元运算符的执行原理?
当布尔运算表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果。
当布尔运算表达式的结果false的时候,选择表达式2作为整个表达式的执行结果。
例子:
public class DataTest06{
public static void main(String[] args){
boolean sex=false;
char c=sex?’男’:’女’;
System.out.println(c);//输出 女
sex=true;
c=(sex?’男’:’女’);
System.out.println(c);//输出 男
/*
sex=false;
char c=sex?”男”:’女’;//编译错误,类型不兼容
*/
System.out.println(sex?’男’:”女”);
}
}
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!