运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值、比较等。
算术运算符
+ 加
- 减
* 乘
/ 除
% 取模(取余):结果的符号与被模数的符号相同
++ 自增:变量前(先运算后取值);变量后(先取值后运算)
-- 自减:变量前(先运算后取值);变量后(先取值后运算)
+ 字符串连接
实例:输出数字的百位、十位、个位
int num = 187 ;
int bai = num / 100 ;
int shi = num % 100 / 10 ; // 方式二:int shi = num / 10 % 10 ;
int ge = num % 10 ;
实例二:自增
int n = 10 ;
n += (n++) + (++n) ; // 解析 n = n(10) + (n++)(10) + (++n)(12) ;
赋值运算符
= 赋值符号,“ = ” 俩侧数据类型不一致时,可以使用自动类型转换或强制类型转换。可以连续赋值。
扩展:+=、-=、*=、/=、%=
实例:
num += 2 ; // 解析 num = num + 2 ;
不会改变变量本身的数据类型
实例二:交换俩个变量的值
int num1 = 10 ;
int num2 = 20 ;
int temp = num1 ;
num1 = num2 ;
num2 = temp ;
比较运算符:(关系运算符)
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
Instanceof 检查是否是类的对象
比较运算符的运算结果都是boolean类型
逻辑运算符
& 逻辑与
&& 短路与
| 逻辑或
|| 短路或
! 逻辑非
^ 逻辑异或
a | b | a&b | a&&b | a|b | a||b | a^b | !a |
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | true | false |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | false | true |
&与&&的运算结果相同,
1)当符号左边是true时,俩者都会执行右边的运算;
2)当符号左边是false时,&会执行右边的运算,&&不会执行右边的运算。
| 与 || 的运算结果相同,
1)当符号左边是false时,俩者都会执行右边的运算;
2)当符号左边是true时,| 会执行右边的运算,|| 不会执行右边的运算。
三元运算符
(条件表达式)? 表达式1 :表达式2 ;
1)条件表达式为true时,运算表达式1;
2)条件表达式为false时,运算表达式2。
说明
1)条件表达式的结果为boolean类型。
2)三元运算符可简化if-else语句;
3)三元运算符要求必须返回一个结果;
4)三元运算符可以嵌套使用。
实例:获取俩个整数的最大值
int m = 12 ;
int n = 5 ;
int max = (m>n) ? m : n ;
String maxstr=(m>n)? “m大”:((m==n)? “m和n相等”:”n大”);
获取三个数的最大值:
int n1 = 12 ;
int n2 = 30 ;
int n3 = -43 ;
int max1 =(n1 > n2) ? n1 : n2 ;
int max2 =(max1 > n3) ? max1 : n3 ;
System.out.println(“三个数中的最大值为”max2) ;
位运算符
<< 左移 在一定范围内,每向左移1位,相当于 *2
>> 右移 在一定范围内,每向右移1位,相当于 /2
>>> 无符号右移
& 与运算
| 或运算
^ 异或运算
~ 取反运算
位运算符直接是对整数的二进制的运算
& 00001100 12
00000101 5
结果 00000100 4
| 00001100 12
00000101 5
结果 00001101 13
^ 00001100 12
00000101 5
结果 00001001 9