Java常用的运算符有算数运算符,赋值运算符,自增减运算符,复合运算符,逻辑运算符,位运算符,三目运算符。
1.算数运算符
算数运算符用来进行数学中的算数运算.
运算符 | 描述 |
+ | 加号 |
- | 减号 |
* | 乘号 |
/ | 除号 |
% | 取模 |
//减
int a=13;
int b=15;
System.out.println(a-b);
//乘
System.out.println(a*20);
//除
System.out.println(10/3);
//取余
System.out.println(10%3);
运行结果:
-2
260
3
1
注:
加号有常见的三种用法:
1.对于数值来说,那就是加法。
2.对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。
char类型字符,和int类型数字,之间的对照关系表:ASCII、Unicode
3.对于字符串string (首字母大写,并不是关键字)来说,加号代表字符串连接操作。
任何数据类型和字符串进行连接的时候,结果都会变成字符串
System.out.println("hello"+"world");
String s="hello";
System.out.println(s+123);
System.out.println(s+20+30);
System.out.println(s+(20+30));
运行结果:
helloworld
hello123
hello2030
hello50
2.赋值运算符
=:用来给变量赋值,将右边的变量,常量赋值给左边的变量
3.自增减运算符
自增运算符:++
自减运算符:--
写在变量名称之前,或者写在变量名称之后。例如: ++num,也可以num++
1.在单独使用的时候,前++和后+没有任何区别。也就是:++num;和num++;是完全一样的。
2.在混合的时候,有【重大区别】 1
1.如果是 前++,那么变 量立刻马上+1,然后拿着结果进行使用。【先加后用】
2.如果是 后++,那么首先使用变量本来的数值,然后再让变量+1。【先用后加】
int num=30;
//后++,先用后加,输出num=30
System.out.println(num++);
//上面用完后num=31,前++,先加后用,输出num=31+1
System.out.println(++num);
//后--,先用后减,输出num=32
System.out.println(num--);
//上面用完后num=31,前--,先加减后用,输出num=31-1
System.out.println(--num);
运行结果:
30
32
32
30
4.复合运算符
运算符 | 描述 |
+= | 先加,再赋值 |
-= | 先减,再赋值 |
*= | 先乘,再赋值 |
/= | 先除,再赋值 |
%= | 先取模,再赋值 |
int num=30;
//num=num+1
num+=1;
System.out.println(num);
//num=num-1
num-=1;
System.out.println(num);
//num=num*2
num*=2;
System.out.println(num);
//num=num/10
num/=10;
System.out.println(num);
//num=num%10
num%=10;
System.out.println(num);
运行结果:
31
30
60
6
6
5.逻辑运算符
运算符 | 用法 | 含义 | 说明 |
&& | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 |
|| | a||b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 |
! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true |
| | a|b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true |
& | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false |
注:
&:不管前面的条件是否正确,后面都执行。
&&:前面条件正确时,才执行后面,不正确时,就不执行
int x = 3;
int y = 4;
boolean f1 = (y>0) && (y>x);
boolean f2 = (y>0) || (y>x);
boolean f3 = !(y>x);
System.out.println("f1=" +f1);
System.out.println("f2=" +f2);
System.out.println("f3=" +f3);
运行结果:
f1=true
f2=true
f3=false
6.位运算符
运算符 | 描述 | 案例 |
& | 位与,同1为1 | 1000&1010->1000 |
| | 位或,有1为1 | 1000|1010—>1010 |
^ | 异或,相同为0,相异为1 | 1000^1010->0010 |
>> | 有符号向右移动 | 1000>>2->0010 |
<< | 有符号向左移动 | 001000<<2->100000 |
>>> | 无符号向右移动 | 1000>>>2->10 |
<<< | 无符号向左移动 | 0001<<<2->100 |
int x = 3;
int y = 4;
System.out.println("x & y: " + (x & y));
System.out.println("x | y: " + (x | y));
System.out.println("x ^ y: " + (x ^ y));
System.out.println("x >> y: " + (x >> y));
System.out.println("x << y: " + (x << y));
运行结果:
x & y: 0
x | y: 7
x ^ y: 7
x >> y: 0
x << y: 48
异或:
a^b^b=a
b∧b的结果为0,因为同一个数与本身相∧,结果必为0。
7.三目运算符
类似于一个简化的条件表达式
int x = 5;
//如果x>1成立,则为99,否则-99
int t = (x > 1) ? 99 : -99;
System.out.println("t=" + t);
运行结果:
t=99