Java基础5-运算符
一、主要的运算符种类
1.算术运算符:+、-、*、/、++、--等。
2.关系运算符:<、>、<=、==、!=等。
3.逻辑运算符
4.赋值运算符
5.三目运算符
二、算术运算符详
1.算术运算符种类
运算符 |
运算规则 |
范例 |
结果 |
+ |
正号 |
+3 |
3 |
+ |
加 |
2+3 |
5 |
+ |
连接字符串 |
“中”+“国” |
“中国” |
- |
负号 |
int a=3;-a |
-3 |
- |
减 |
3-1 |
2 |
* |
乘 |
2*3 |
6 |
/ |
除 |
5/2 |
2 |
% |
取余 |
5/2 |
1 |
++ |
自增 |
int a=1;a++/++a |
2 |
-- |
自减 |
int b=3;a--/--a |
2 |
- 加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
- 除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
- “%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
- 整数做被除数,0不能做除数,否则报错。
2.++和--的注意事项
++运算符,会在原有值的基础上自增1;
--运算符,会在原有值的基础上自减1。
public class operator { public static void main(String[] args){ int a = 3; int b = 3; a++; b--; System.out.println(a); System.out.println(b); //输出结果为4 } }
++,--运算符单独使用,不参与运算操作时,运算符前后位置导致的运算结果是一致的。
当参与运算操作时
public class operator { public static void main(String[] args){ int a = 3; int b; b = a++ + 10; System.out.println(a); System.out.println(b); //输出结果为a=4,b=13 } }
当++ --运算符放置在变量前边时
public class operator { public static void main(String[] args){ int a = 3; int b; b = ++a + 10; System.out.println(a); System.out.println(b); //输出结果为a=4,b=14 } }
- ++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;
- ++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。
三、赋值运算符
运算符 |
运算规则 |
范例 |
结果 |
= |
赋值 |
int a=2 |
2 |
+= |
加后赋值 |
int a=2,a+=2 |
4 |
-= |
减后赋值 |
int a=2,a-=2 |
0 |
*= |
乘后赋值 |
int a=2,a*=2 |
4 |
/= |
整除后赋值 |
int a=2,a/=2 |
1 |
%= |
取模后赋值 |
int a=2,a%=2 |
0 |
这里主要注意的是+=、-+...
/* * 赋值运算符 * +=, -=, *=, /=, %= : * 上面的运算符作用:先进行数学运算,然后将值赋给=号左侧 * 注意:赋值运算符左边必须是变量 */ public class OperatorDemo2 { public static void main(String[] args) { byte x = 10; x += 20;// 相当于 x = (byte)(x+20); System.out.println(x); } }
四、关系运算符
运算符 |
运算规则 |
范例 |
结果 |
== |
相等于 |
4==3 |
False |
!= |
不等于 |
4!=3 |
True |
< |
小于 |
4<3 |
False |
> |
大于 |
4>3 |
True |
<= |
小于等于 |
4<=3 |
False |
>= |
大于等于 |
4>=3 |
True |
一个=号为赋值,两个=(==)为判断,会返回一个布尔类型的值(true、false)
五、逻辑运算符
运算符 |
运算规则 |
范例 |
结果 |
& |
与 |
false&true |
False |
| |
或 |
false|true |
True |
^ |
异或 |
true^flase |
True |
! |
非 |
!true |
Flase |
&& |
短路与 |
false&&true |
False |
|| |
短路或 |
false||true |
True |
逻辑运算符通常连接两个其他表达式计算后的布尔值结果
当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断。
public class operator { public static void main(String[] args){ //短路与或 int e=2; int f=3; System.out.println((e>f)&(e==1));//false&false--false System.out.println((e>f)&(e<f));//false&true--false System.out.println((e>f)&(e==2));//true&true--true System.out.println((e>f)|(e==1));//false|false--false System.out.println((e>f)|(e==1));//false|true--true System.out.println((e>f)|(e==1));//false|true--true System.out.println((e>f)^(e==1));//false^false--false System.out.println((e>f)^(e==1));//false^true--true System.out.println((e>f)^(e==1));//false^true--true System.out.println(!(e>f));//false--true System.out.println(!(e<f));//true--false System.out.println((e>f)&&(e==1));//false&&false--false System.out.println((e>f)&&(e<b));//false&&true--false System.out.println((e<f)&&(e==2));//true&&true--true System.out.println((e>f)||(e==1));//false||false--false System.out.println((e>f)||(e<b));//false||true--true System.out.println((e<f)||(e==1));//true||false--true } }
六、三目运算符
格式:
(条件表达式)?表达式1:表达式2;
若条件成立,则返回表达式1,若不成立则返回表达式2
public class operator { public static void main(String[] args){ System.out.println(3>2?"正确":"错误"); } }
七、运算符的优先级
优先级 |
描述 |
运算符 |
1 |
括号 |
()、[] |
2 |
正负号 |
+、- |
3 |
自增自减,非 |
++、--、! |
4 |
乘除,取余 |
*、/、% |
5 |
加减 |
+、- |
6 |
移位运算 |
<<、>>、>>> |
7 |
大小关系 |
>、>=、<、<= |
8 |
相等关系 |
==、!= |
9 |
按位与 |
& |
10 |
按位异或 |
^ |
11 |
按位或 |
| |
12 |
逻辑与 |
&& |
13 |
逻辑或 |
|| |
14 |
条件运算 |
?: |
15 |
赋值运算 |
=、+=、-=、*=、/=、%= |
16 |
位赋值运算 |
&=、|=、<<=、>>=、>>>= |