算术运行符
加减乘除 %(取模-->求余) ++ --
加在字符串相加是,它代表的是拼接
整数的除数不能为0;运行时会有异常发生
System.out.print(100.0/0.0);//Infinity 无限大
100.0是double类型,除以0会把0转换为double类型,最终结果是显示无限大
System.out.print(0.0/0.0);//NaN not a number
取余
System.out.print(10%-3);
//取余结果符号由谁来决定,它由前面的数来决定的
例如:
System.out.print(-10%-3);//-1
不存在负负得正这种情况,无论是正负号,结果的符号都是由前面的数来决定的
自增自减++ --
用法:必须得要使用变量的前后,
作用:表示当前操作的变量自己累加1或累减1
++ 或-- 写在变量前后的区别?
1.如果不参与运算的话,它们是没有区别
2.如果参与了运算 ,区别就是很大了
累加的结果要不要参与本次运算,(使用了累加之后值运算,还是使用累加之前的值进行运算)
a++ 累加的结果不参与本次运算,(使用变量的原始值进行运算)
++a 累加的结果要参与本次运算,(使用累加之后的值进行运算)
int a = 10;
a++;
++a;
a--;
--a;
赋值运行符
eclipse ctrl+d 快速删除一行
= += -= *= /= %=
int a = 10;
a += 1; //a = a+1;
需要注意的是:小类型
short s = 5;
s = s+1;是不能转的,因为最小的运算类型是int
需要用到强转类型
s = (short)(s+1);
s += 5;//s = (short)(s+1); 使用赋值运算时自动会进行前转short类型
比较运行符
<> >= <= > == !=
比较运算符的结果是一个布尔类型
int a = 10;
int b = 11;
System.out.println(a <= b);//true
只要符合了a
三元运算符
表达式:执行指定的运算,能够得出某一个特定的值.我们称这个式子为表达式
得出的值为数值开的式,是算术表达式
int a = 2 + 5;//算术表达式 返回值是一个数值类型
如果得出的值是boolean,称它是逻辑表达式
boolean t = a > 5; //逻辑表达式
格式: 逻辑表达式?表达式1:表达式2
true /false
如果表达式的值为true 就返回表达式1值
如果表达式的值为false 就返回表达式2值
int i = 5;
System.out.println(i < 3 ? 1 > 2 : 3 + 8);//false
三元运算符练习题
// 1.求兩個數和的最大值
int a1 = 63263;
int b1 = 20;
System.out.println(a1 > b1 ? "最大值是a1:" + a1 : "最大值是b1:" + b1);
// 2.求一個數是偶数还是奇数
// 判断它除以2之后,有没有余数 如果余数为0就是偶数 ,否则就是奇数
String res = a1 % 2 == 0 ? a1+"偶数" : a1+"奇数";
System.out.println(res);
逻辑运算符
所有逻辑运算符结果都为布尔类型
与(&) 或(|) 非(!) 异或(^) 短路与(&&) 短路或(||)
1.与(&)
格式:逻辑表达式1 & 逻辑表达式2
结果:如果两个表达式有一个为false 那么与的结果就为false
两个表达式都为true 那么与的结果才为true
System.out.println(true & false);// false
2.或(|)
格式:逻辑表达式1 | 逻辑表达式2
结果:如果两个表达式有一个为true 那么或的结果就为true
两个表达式都为false 那么与或结果才为false
System.out.println(false | false);// false
3.非(!)对一个布尔类型取反的操作
格式:!布尔类型
System.out.println(!true);// false
4.异或(^)
格式:逻辑表达式1 ^ 逻辑表达式2
异或是判断两个数是不等的,如果两个数是不相等结果就为true
System.out.println(true ^ false);// 不相等就为true
5.短路与(&&)
格式:逻辑表达式1 && 逻辑表达式2
结果:如果两个表达式有一个为true 那么或的结果就为true
两个表达式都为false 那么与或结果才为false
System.out.println(true && false);// false
& 无论前面是真还是假,都会执行后面的表达式(无论什么结果,两边都会执行)
&& 只要发现了不满足条件(false),就不会再去执行后面的表达式了
6.短路或(||)
格式:逻辑表达式1 || 逻辑表达式2
结果:如果两个表达式有一个为true 那么或的结果就为true
两个表达式都为false 那么与或结果才为false
int a = 5;
System.out.println(a>5||1==1/0);// false
| 无论前面是真还是假,都会执行后面的表达式(无论什么结果,两边都会执行)
|| 只要发现满足了条件(true),就不会再去执行后面的表达式了
运算符的优先级
是按照加减乘除的顺序来的,有括号算括号先,下面是详细的优先级列表