运算符
-
算术运算符
求和 +
相减 -
乘积 *
商 /
求余数(求模)%
自加1 ++
自减1 - -
对于++运算符来说:
- 可以出现在变量前,也可以出现在变量后。
- 不管出现在变量前还是后,总之++执行结束之后,变量的值一定会自加1。
-
*重点
//++
//++无论出现在变量前还是后,只要++运算结束,一定会自加1.
int i = 10;
i++;
System.out.println(i); // 11
int k = 10;
++k;
System.out.println(k); // 11
//++出现在变量前:
int i = 10;
int k = ++i;
System.out.println(k); // 11
System.out.println(i); // 11
//++出现在变量后:
int i = 10;
int k = i++;
System.out.println(k); // 10
System.out.println(i); // 11
int i = 10;
System.out.println(i++); // 10
//解开以上题目的窍门是什么?拆代码
int temp = i++;
System.out.println(temp); // 10
System.out.println(i); // 11
int i = 10;
System.out.println(++i);
//会拆代码:
int temp = ++i;
System.out.println(temp); // 11
System.out.println(i); // 11
-
关系运算符
>一定要记住一个规则:
所有的关系运算符的运算结果都是布尔类型,
不是true就是false,不可能是其他值
在java语言中:
= : 赋值运算符
== :关系运算符,判断是否相等
注意:关系运算符中如果有两个符号的话,两个符号之间不能有空格。
>= 这是对的, > = 这是不对的。
== 这是对的,= = 这是不对的。 -
逻辑运算符
& 逻辑与(可以翻译成并且)
| 逻辑或(可以翻译成或者)
! 逻辑非(取反)
&& 短路与
|| 短路或用普通话描述的话:100 大于 99 并且 100 大于 98 ,有道理
用代码描述的话:100 > 99 & 100 > 98 --> truetrue & true --> true
逻辑运算符的特点:
逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。
左边是布尔类型 & 右边还是布尔类型 -->最终结果还是布尔类型。
& 两边都是true,结果才是true
| 一边是true,结果就是true
! 取反
&&实际上和&运算结果完全相同,区别在于:&&有短路现象。
左边的为false的时候:&& 短路了。
左边为true的时候:|| 短路了。 -
赋值运算符
赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”:基本的、扩展的。
基本赋值运算符? =
扩展的赋值运算符?
+=
-=
*=
/=
%=
注意:扩展赋值运算符在编写的时候,两个符号之间不能有空格。
+ = 错误的。
+= 正确的。很重要的语法机制:
使用扩展赋值运算符的时候,永远都不会改变运算结果类型。
byte x = 100;
x += 1;
x自诞生以来是byte类型,那么x变量的类型永远都是byte。不会变。不管后面是多大的数字。 -
条件运算符
条件运算符:(三目运算符。)
语法格式:
布尔表达式 ? 表达式1 : 表达式2执行原理是什么?
布尔表达式的结果为true时,表达式1的执行结果作为整个表达式的结果。
布尔表达式的结果为false时,表达式2的执行结果作为整个表达式的结果。 -
+运算符
.+ 运算符在java语言中有两个作用。
作用1:求和
作用2:字符串拼接什么时候求和?什么时候进行字符串的拼接呢?
当 + 运算符两边都是数字类型的时候,求和。
当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作。一定要记住:字符串拼接完之后的结果还是一个字符串。