运算符
java
算术运算符
运算符 |
说明 |
计算 |
结果 |
+ |
数学加运算 |
x=5+5 |
10 |
+ |
字符串拼接 |
x="aa"+"bb" |
aabb |
- |
数学减运算 |
x=5-5 |
0 |
- |
取负数 |
y=5;x=-y |
-5 |
* |
数学乘运算 |
x=5*5 |
25 |
/ |
数学除运算 |
x=5/5 |
12 |
% |
数学余运算 |
x=5%5 |
1 |
++ |
数学加运算 |
x=1;x++ |
2 |
-- |
数学加运算 |
x=1;x-- |
0 |
自加运算
//输出答案为1 2 0 2
int num1 = 0;
int num2 = 1;
//先使用对应的值后自加1
int num3 = num1++;
//int num3=num1; num1=mum+1;
//先对自身加1后使用
int num4 = ++num2;
//num2=num2+1; int num4=num2;
自减运算
//输出答案为-1 0 0 0
int num1 = 0;
int num2 = 1;
//先使用对应的值后自加1
int num3 = num1--;
//int num3=num1; num1=mum-1;
//先对自身加1后使用
int num4 = --num2;
//num2=num2-1; int num4=num2;
赋值运算符
通用的形式:变量名=表达式
- 提示:还可以和位运算符构成复合运算符,例如:^=、<<=
运算符 |
表达式 |
计算 |
结果(假设x=10) |
+= |
x+=5 |
x=x+5 |
15 |
-= |
x-=5 |
x=x-5 |
5 |
*= |
x*=5*10 |
x=x*5 |
50 |
/= |
x/=5 |
x=x/5 |
2 |
%= |
x%5 |
x=x%5 |
0 |
复合运算
//结果为70
int num = 10;
num += 20;
num = num + 20;
num+=20;
System.out.println(num);
关系运算符
- 提示:关系运算符的结果都是boolean类型的值
- 比较运算符概括:实质上是一个条件判断,如果条件判断成功返回true,失败返回false
- 基本数据类型的比较如果比较符两边的值相等返回true否则返回false
运算符 |
说明 |
计算 |
结果 |
== |
相等于 |
1==1 |
true |
!= |
不等于 |
1!=1 |
false |
> |
大于 |
1>2 |
false |
< |
小于 |
1<2 |
true |
>= |
大于等于 |
1>=2 |
false |
<= |
小于等于 |
1<=2 |
true |
int a = 20;
int b = 30;
System.out.println(a==b);//返回false
System.out.println(a!=b);//返回true
System.out.println(a>b);//返回false
System.out.println(a<b);//返回false
System.out.println(a<=b);//返回false
System.out.println(a>=b);//返回false
逻辑运算符
- 逻辑运算符最终返回的结果一定是boolean类型
- &&(与 并且) 丨丨(或 或者) !(非 取反)
- 多个&&链接是只有当所有的条件判断都成立时,最终的结果才是true
运算符 |
说明 |
表达式 |
描述 |
&& |
短路与 |
条件1&&条件2 |
仅仅俩个条件同时为真,结果为真,若1为假,则不判断2 |
丨丨 |
短路或 |
条件1丨丨条件2 |
只要俩个条件有一个为真,结果为真,若1为真,则不判断2 |
! |
非 |
条件1!条件2 |
条件个为真时,结果为假 条件个为假时,结果为真 |
& |
与 |
条件1&条件2 |
仅仅俩个条件有一个为真,结果为真,若1为假,则2还需判断 |
丨 |
或 |
条件1丨条件2 |
只要俩个条件有一个为真,结果为真,若1为真,则2还需判断 |
^ |
异或 |
条件1^条件2 |
当一个为真,一个为假时,结果为真 |
//逻辑运算符最终返回的结果一定是boolean类型
//假设a条件判断1; b条件判断2;
//a&&b 只有a=true并且b=true时 a&&b=true 其他情况a&&b=false
System.out.println((2==3)&&(4<=10));//返回fals
//a||b 只有a=false或者b=false时 a||b=false 其他情况a||b=true
System.out.println((7!=8)||(9<=-10));//返回true
//!a 只有a=false !a=true 当a=true !a=false
System.out.println(!(3==4));//返回true
//综合从左至右一步一步分析,最终得出结果 下答案为:false
System.out.println(!((3==4)&&(5<=7)||((3==7)||(6<=10))));
a&b: 当a=false时 还会判断 b的值 然后才输出 a&b=false
a&&b: 当a=false时 不在判断b的值 直接输出a&&b=false;
a|b: 当a=true是 还会判断 b的值 然后输出 a|b=true
a||b:当a=true时 不在判断b的值 直接输出a||b=true;
a^b: 只有当 a,b 2个条件判断一个值为true,
另一个值为false时 a^b=true其他情况为false
位运算符
位运算符是对二进制的直接运算
运算符 |
表达式 |
计算 |
结果(假设x=10) |
& |
与运算 |
6&3=2 |
只有对应的俩个二进制均为1时,结果位才为1,否则为0 |
丨 |
或运算 |
6丨3=7 |
只要对应的二个二进制位有一个为1时,结果位就为 |
^ |
异或运算 |
6^3=5 |
当两对应的二进位相异时,结果为1 |
~ |
非运算符 |
~9=10 |
其功能是对参与运算的数的各二进位按要求反 |
<< |
左移 |
2<<3=16 |
往左位移,右边部0 |
>> |
右移 |
3>>1=1 |
往右边移,正数左边补0,负数补1 |
>>> |
无符号右移 |
3>>>1=1 |
往右位移,左边部0 |
三目运算符
public class T2 {
public static void main(String[] args) {
char x = 'X';
int i = 10;
System.out.println(true ? x : 0);
System.out.println(false ? 10 : x);
}
}
为什么结果是X X
x? y:z
x是一个boolean类型,若x为true,结果显示y,若x为false,则结果显示z.