算术运算符
运算符 |
运算规则 |
范例 |
结果 |
+ |
正号 |
+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 |
class Demo02
{
public static void main(String[] args)
{
//+连接字符串
int a=1;
double b=12;
System.out.println("a+b"+a+b);//加号连接字符串注意
System.out.println("2"+1);
char d='a';
int e=(int)d-97;
int f=(int)d-'a';
System.out.println(d);
System.out.println(f);
//int/int =int
}
}
class Demo03
{
public static void main(String[] args)
{
/*//a++:先复制再自增(a的值先复制给a++;然后a再自加1) a++独立于a 相当于a++是另一个变量
int a=1;
int b=a++ +2;
int b=a++ +2+ a++;
System.out.println(a);//2 3
System.out.println(b);//3 5
int a=1;
a++;
int b=1+ a++ + a + a++;
System.out.println(a);
System.out.println(b);*/
//++a:先a自增在赋值
int a=1;
int b=++a + a++ +2 + ++a + a;
System.out.println(a);
System.out.println(b);
}
}
赋值运算符
运算符 |
运算规则 |
范例 |
结果 |
= |
赋值 |
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 |
0 |
比较运算符
运算符 |
运算规则 |
范例 |
结果 |
== |
相等于 |
4==3 |
False |
!= |
不等于 |
4!=3 |
True |
< |
小于 |
4<3 |
False |
> |
大于 |
4>3 |
True |
<= |
小于等于 |
4<=3 |
False |
>= |
大于等于 |
4>=3 |
True |
赋值运算符的 = 符号与比较运算符的 == 符号是有区别的,如下:
赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;
比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等
逻辑运算符
运算符 |
运算规则 |
范例 |
结果 |
& |
与 |
false&true |
False |
| |
或 |
false|true |
True |
^ |
异或 |
true^flase |
True |
! |
非 |
!true |
Flase |
&& |
短路与 |
false&&true |
False |
|| |
短路或 |
false||true |
True |
逻辑运算符通常连接两个其他表达式计算后的布尔值结果
当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断l 短路与&&:参与运算的两边数据,有false,则运算结果为false;
l 短路或||:参与运算的两边数据,有true,则运算结果为true;
l 逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。
三元运算符
(条件表达式)?表达式1:表达式2;
运算符优先级
优先级 |
描述 |
运算符 |
1 |
括号 |
()、[] |
2 |
正负号 |
+、- |
3 |
自增自减,非 |
++、--、! |
4 |
乘除,取余 |
*、/、% |
5 |
加减 |
+、- |
6 |
移位运算 |
<<、>>、>>> |
7 |
大小关系 |
>、>=、<、<= |
8 |
相等关系 |
==、!= |
9 |
按位与 |
& |
10 |
按位异或 |
^ |
11 |
按位或 |
| |
12 |
逻辑与 |
&& |
13 |
逻辑或 |
|| |
14 |
条件运算 |
?: |
15 |
赋值运算 |
=、+=、-=、*=、/=、%= |
16 |
位赋值运算 |
&=、|=、<<=、>>=、>>>= |
class Demo05 { public static void main(String[] args) { //& System.out.println(10&-10); System.out.println(10|-10); System.out.println(false&false); //&& System.out.println(true&&true); System.out.println(true&&false); System.out.println(false&&false); //区别: //&&:当左边的表达式判断为false // 那么右边的表达式就不会判断了 //&:不管左边表达式的值是否为false, //右边的表达式都会执行 //区别: // ||:当左边的表达式判断为true // 那么右边的表达式就不会判断了 //|:不管左边表达式的值是否为true, //右边的表达式都会执行 } }
class Demo06 { public static void main(String[] args) { int a=1; int b=2; int c=3; int max; /* 三元(目)运算符: //(条件表达式)?值1:值2 三元(目)运算的结果是一个值 */ //max=(a>b)?a:b; max=((a>b)?a:b)>c?((a>b)?a:b):c; System.out.println(max);