JAVA基础(三)
------------------------------------------------------------------运算符-------------------------------------------------------------------------------------------------
算数运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
运算符 |
运算规则 |
范例 |
结果 |
+ |
正号 |
+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 |
--
算数运算符中的++ ——
i++运算符,会在原有值的基础上自增1;
声明 a=1;
a++ 先赋值运算,在自己增加一,结果a=2;
++a 先自增加一,在赋值,结果a=2
l - -运算符,会在原有值的基础上自减1。
声明a=1
a- - 先运算,在自己减一,a这是0;
- -a 先自减一,在赋值,a=0;
赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。
运算符 |
运算规则 |
范例 |
结果 |
= |
赋值 |
int a=2 |
2 |
+=
|
加后赋值 |
int a=2,a+=2,(a=a+2) |
4 |
-= |
减后赋值 |
int a=2,a-=2 (a=a-2) |
0 |
*= |
乘后赋值 |
int a=2,a*=2 (a=a*2) |
4 |
/= |
整除后赋值 |
int a=2,a/=2 |
1 |
%= |
取模后赋值 |
int a=2,a%=2 a=a%2 |
0 |
=: int a=2;
将等号右边的值赋给左边的a;
注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。
* 赋值运算符
* +=, -=, *=, /=, %= :
* 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
* 注意:赋值运算符左边必须是变量
*/
publicclass OperatorDemo2 {
publicstaticvoid main(String[] args) {
byte x = 10;
x += 20;// 相当于 x = (byte)(x+20);
System.out.println(x);
}
}
X=30;
比较运算符
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
运算符 |
运算规则 |
范例 |
结果 |
== |
相等于 |
4==3 |
False |
!= |
不等于 |
4!=3 |
True |
< |
小于 |
4<3 |
False |
> |
大于 |
4>3 |
True |
<= |
小于等于 |
4<=3 |
False |
>= |
大于等于 |
4>=3 |
True |
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
注意
赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;
比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等的
逻辑运算符
逻辑运算符主要用于进行逻辑运算。
运算的最终结果为布尔值true或false。
运算符 |
运算规则 |
范例 |
结果 |
& |
与(false后继续走后面条件) |
false&true |
False |
| |
或 |
false|true |
True |
^ |
异或 (两边值相同为false) |
true^flase |
True |
! |
非 |
!true |
Flase |
&& |
短路与 (短路后不再执行此该条件) |
false&&true |
False |
|| |
短路或 |
false||true |
True |
|
|
|
|
举个例子
我们可以从“投票选举”的角度理解逻辑运算符:
1、 与:要求所有人都投票同意,才能通过某议题
2、 或:只要求一个人投票同意就可以通过某议题
3、 非:某人原本投票同意,通过非运算符,可以使其投票无效(取反)
4、 异或:有且只能有一个人投票同意,才可以通过某议题
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。(可以理解为满足其一,终止判断)
&&
譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
短路与 和 与 的区别:
1. 与& 第一个条件无论结果如何,都会执行第二个条件,
2. 短路与&& 第一个条件判断出false,不在走第二个条件,判断出为true,则就会走第二条件。
||
同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
短路或和或区别
1.或| 第一个条件为true,不执行第二个条件
第一个条件为false,执行第二个条件
2.短路或|| 有true,则运算结果为true
三元运算符
用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。
使用格式:
(条件表达式)?表达式1:表达式2;
a?b:c;
运算规则:
a) 判断条件表达式,结果为一个布尔值。
b) true,运算结果为表达式1
c) false,运算结果为表达式2
如:
int a = 10; int b = 20;
a==b?10:20; 结果为20
多个比较(得出最大值)
int a=1;
int b=2;
int c=3;
int max=(a>=b?a:b)>=c?(a>=b?a:b):c;
System.out.println(max);