算数运算符
- 算数运算符
- b. 赋值运算符
- c. 比较运算符(关系运算符)
- d. 逻辑运算符
- e. 三元运算符
+ , - , * , / , % , ++ , --
++与- -运算符
1:就是完成自身+1或者-1的动作
2:
自增或者是自减
3:
++在后: 先将变量原本记录的值拿出来操作, 然后再完成自身+1的动作
int i = 10;
int b = i++;
//输出语句
System.out.println("b =" + b);
//控制台输出:10
++在前: 先自身完成+1的动作, 然后再进行操作(赋值, 输出)
int i = 10;
int b = ++i;
//输出语句
System.out.println("b =" + b);
//控制台输出: 11
赋值运算符:
总结:
基本赋值运算符:
=
扩展赋值运算符:
+= -= *= /= %=
+= : 左右两边做加法运算, 然后将结果赋值给左边
int a = 0; ==> a += 10; == > a = 10;
问题:
下面的程序是否有问题,如果有问题,请指出并说明理由
short s=1;
s=s+1;
这里有错误, 因为s是short类型, s在跟1做运算的时候, 会自动类型提升为int
将int类型的数据赋值给short就必须加上强转
// s = (short)(s+1);
short s=1;
s+=1;
// 因为底层自动做了强制类型转换.
关系运算符
==
!=
>
<
>=
<=
注意事项:
1: 无论比较运算符连接的式子简单还是复杂, 结果必须是boolean类型.
2:
==号千万不能写成=
=号是用来赋值的
==号才是用来比较的
逻辑运算符
& | ^ ! && ||
&: 遇false则false (只要有一个是×,全部都是x,全true 出true)
|: 遇true则true (只要有一个是true,全部都是true)
^: 相同为false, 不同则为true (全true 出false 全false 出true)
!: 取反, 非false则true, 非true则false (true就是false,false就是true)
特点: !!两次不改变原值
&与&&的区别
& : 俩边都会执行,无论左边是true还是false。
int a = 1;
int b = 0;
System.out.println(a > 0 & a > b ); // 判断完a > 0后无论结果是true还是false右边都会执行
&& :&&具有短路效果, 当左边为false的时候, 右边就不执行了
System.out.println(a > 0 && a > b );// 判断完a > 0结果为false的时候就不会执行右边的程序了
推荐使用&&其他逻辑运算符也是一样的,目的提高开发效率.
三元运算符
1: (比较表达式) ? 表达式1 : 表达式2;
int a = 9; int b = 0;
(a > b)?true : false;如果表达式成立,true,如果不成立,false;
2: 看比较表达式返回的结果
true: 表达式1
false : 表达式2