运算符

运算符
1.算术运算符 :+ - * / %

代码如下:

public class TestDemo {
public static void main(String[] args) {
int a=5;
int b=2;
System.out.println(a+b);//加法运算符结果是7
System.out.println(a-b);//减法运算符结果是3
System.out.println(a*b);//乘法运算符结果是10
System.out.println(a/b);//除法运算符结果是2
System.out.println(a%b);//求余运算符结果是1
}
}
注:0不能作为除数!

public class TestDemo {
public static void main(String[] args) {
int a = 5;
int b = 0;
System.out.println(a/b);
}
}

会抛出0不能作为除数的异常!

2.增量运算符:+= -= *= /= %=

public class TestDemo {
public static void main(String[] args) {
int a = 5;
a+=1;//等价于a=a+1;此时a=6;
System.out.println(a);//6
a-=1;//等价于a=a-1;上次执行完a+=1时a已经变成了6,这时执行a-=1 a变成了5
System.out.println(a);//5
a*=2;//等价于a=a*2 此时a=10;
System.out.println(a);//10
a/=2;//等价于a=a/2;此时a=5;
System.out.println(a);//5
a%=2;//等价于a=a%2;此时a=1
System.out.println(a);//1
}
}
3.自增 自减运算符 前缀++ 后缀++ 前缀-- 后缀–

public class TestDemo {
public static void main(String[] args) {
int a=1;
int b=a++;//等价于b=a a=a+1此时b=1 a=2;
System.out.println(b);//1
System.out.println(a);//2
b=++a;//等价于a=a+1 b=a 此时a=3 b=3;
System.out.println(b);//3
System.out.println(a);//3
b=a–;//等价于b=a a=a-1 此时b=3 a=2;
System.out.println(b);//3
System.out.println(a);//2
b=–a;//等价于a=a-1 b=a 此时a=1 b=1
System.out.println(b);//1
System.out.println(a);//
}
}
4.逻辑运算符:&&(与) ||(或) !(非)

逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 也就是说 只有2值 true 或 false

public class TestDemo {
public static void main(String[] args) {
int a = 10;
int b =5;
int c =6;
System.out.println(a>b&&a>c);//T
System.out.println(a>b||a>c);//T
System.out.println(a!=b);//T
System.out.println();
System.out.println(a<b&&a>c);//F短路求值,&&运算符中一假为假!
System.out.println(a<b||a>c);//T 或运算符中一真为真!
}
}

短路求值!

结论: 1. 对于 && , 如果左侧表达式值为 比特科技 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式

  1. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.

5.位运算符

&(按位与) |(按位或) ~(按位取反) ^(按位异或)

位指二进制位

public class TestDemo {
public static void main(String[] args) {
int a=3;
int b=4;
System.out.println(a&b);//0
System.out.println(a|b);//7
System.out.println(a^b);//7
System.out.println(~a);//-4
}
}
我们来看 a和b的二进制表示

以上4张图是为什么得到这个答案的分析过程。
6.移位运算符

(右移):最右位不要了,正数最左侧补0,负数补1

<<(左移):最左侧位不要了,最右侧补0

(无符号右移):最右侧不要了,最左侧补0

注:>>运算符 相当于除以2 右移n位 相当于除以2的n次方

   <<运算符 相当于 乘2    左移n位  相当于乘2的n次方

7.条件运算符

格式:

表达式1?表达式2:表达式3

比如:

public class TestDemo {
public static void main(String[] args) {
int a = 10;
int b = 2;
int c=a>b?a:b;
System.out.println©;
}
}
答案毫无疑问是10,这是在求2个数的较大值。也就是说表达式1成立执行表达式2,表达式1不成立执行表达式3!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言&生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值