运算符:
(1)算术运算符
(2)关系运算符
(3)逻辑运算符(短路运算符): &&,||,!
(4)赋值运算符
(5)字符串拼接符:+
(6)三目运算符 条件表达式? 值1:值2
两原一封:
两个原则:
1、不同类型的数据做运算时,一定会先转换成较大范围类型后
再运算。
2、byte,short,char这些类型运算时,一定会先转成
int类型再运算,结果int类型
封:
一定要注意int,long做封闭式运算。
算术运算符:
+,-,*,/,%,++,--
/:
情况1:
参与的类型都是整型时,做取整运算,
即 商n余m, 结果为n
2/3----商0余2。结果为0
情况2:
只要有一个浮点数参与,就会做
类似精确运算。
%:取余运算符号,也叫取模运算符号
做除法运算时,商n余m,结果为m.
情况1:参与运算都是整数时,余数是精确值
情况2: 有浮点数参与时,余数不一定是精确值。
注意:
取余运算一般被用来判断 某一个数能
否被另外一个数整除。
++/--:是自增自减运算符
符号要与变量一起使用。
表示变量自动+1,或自动-1;
如:++a/a++/--a/a--;
++a/a++:是a=a+1的简写
--a/a--:是a=a-1的简写
情况1: 即与变量在一起,不与其他任何符号连用时
(单独使用)
++a
a++
--a
a--
此时,变量一定会+1或-1;
情况2:自增/自减运算与其他符号连用时
需要考虑表达式的值。
++a/a++/--a/a--整体看成表达式
口诀:
符号在前,先运算再赋值
符号在后,先赋值在运算
解析:符号在前时,变量先自增/自减,新值赋值给表达式
符号在后时,先把变量的值赋值给表达式,然后变量再自增/自减
如:
int a = 1;
a = ++a;
System.out.println(a);
被除数为正,取余结果一定为正
被除数为负,取余结果一定为负。
运算符之关系运算符:
>,>=,<,<=,==,!=
用来判断条件是否成立。一般都用在分支结构或循环结构中
运算符之逻辑运算符(短路运算符):
当有两个条件以上进行判断是否成立时,需要使用
逻辑运算符。即与,或,非
&&,||,!
数学中:判断a是否大于1并且小于3时,
写法如下: 1<a<3
java语言中,没有上述写法,需要使用&&
写法如下: a>1&&a<3
a<3&&a>1
&&(与):用于判断两个条件是否同时成立
||(或):用于判断是否有条件成立。
!: 用于条件的否定
&& a>b && c>d -->结果
true true true
true false false
false true false
false false false
|| a>b || c>d -->结果
true true true
true false true
false true true
false false false
! a>b
true---------》false
false--------》true
&&: 全真为真,一假则假
||: 一真即真,全假则假
!: 非真即假,非假即真
又称之为短路运算符
当使用&&或者||时,第一个条件能确定结果时,
就不会执行第二个条件,这种行为可视为短路
现象。
单个符号的 &(与) |(或) 没有短路现象。
运算符之赋值运算符:
=,赋值运算,给前面的变量赋值
扩展赋值运算符
+=,-=,*=,/=,%=。
a+=1相当于 a = a + 1
a-=b相当于 a = a - b;
a*=b相当于 a = a * b;
a/=b相当于 a = a / b;
a%=b相当于 a = a % b;
运算符之字符串拼接符号,
+
当+前后,只要有一个是字符串类型,就做拼接操作
拼接后的结果是字符串类型。
如:
int a = 1;
int b = 2;
String str = "3";
String result = a+b+str;
System.out.println(result);//"33"
result = str+a+b;
System.out.println(result);//"312"
result = a+str+b;
System.out.println(result);//"132"
System.out.println(1+2+a+str+b+3);//"4323"
System.out.println(1+2+a+"3"+a*b+str);//"4323"
运算符之三目运算符(三元运算符)
关系运算与逻辑运算统称为条件运算
变量类型 变量= 条件表达式?值1:值2;
变量类型:需要与值1或值2的类型相同。
而值1与值2的类型要么相同,
要么就可以自动转换。