Java运算符

运算符

+,-,,/(商),%(余数),++,–
整数/整数结果只能为整数
int a = 3;
int b = 2;
System.out.println(a/b);
//输入结果为1
System.out.println(a
1.0/b);
//输出结果为1.5

######### ++,-- ###########
++,-- 单独使用放前放后无区别

参与运算使用 放前是先自增或自减再参与运算,放后是先参与运算再自增或自减

int a = 3;
int b = 4;

int c = a++; //c=3 a=4
int d = b–; //d=4 b=3

int c = ++a; //c=4 a=4
int d = --b; //d=3 b=3

########## += ###########
short s = 1;
s += 1; //等价于 s = (short) (s + 1); 不等价于 s = s + 1;
System.out.println(s);

#####################
int a = 10;
int b = 20;
int c = (a = b); // c = 20 把b赋值给a留下a赋值给c

#######比较运算符########

!=
<=

=

######逻辑运算符########

& AND与
| OR或
^ XOR异或 相同为false 不同为true
! Not非 可以多个! 偶数个!不改变 奇数个改变
&& AND短路 左边是false右边不执行
|| OR短路 左边是true右边不执行

int a = 3;
int b = 4;
int c = 5;
System.out.println(b > a & c > b); // c>b>a; 这样是错误的

#########位运算符########## 转二进制 运算时用补码
& 与运算 有0则0 11为1
| 或运算 有1则1
^ 异或运算 相同则0不同则1 一个数据被另一个数据位异或量词结果不变
~ 反码(按位取反运算符) 0变1, 1变0
<< 左移 左边最高位丢失,右边补齐0 把<<左边的数据*2的移动次幂

右移 最高位是0,左边补齐0;最高位是1,左边补齐1 把>>左边的数据/2的移动次幂

无符号右移 无论最高位是0还是1,左边补齐0

题目:用最有效的方式计算2*8的结果
2 << 3;

题目:两个整数变量的交换
方式1:
int c = a;
a = b;
b = c;

方式2: ^的特点
int a = 10;
int b = 20;
a = a^b;
b = a^b; //b = abb b = a
a = a^b; // a = aba a = b

方式3:变量相加的做法
a = a + b;
b = a - b;
a = a - b;

方式4:一句话搞定
b = (a+b) - (a=b); // b=30-20=10,a=20

#######三目运算符######
单目运算符: ~3
双目运算符: 3+4
三目运算符:
int x = 100;
int y = 200;
int z = ((x > y)? x:y); // 结果取y z=200;
格式: 比较表达式?表达式1:表达式2;
比较表达式: ?前结果是boolean类型
执行流程:
根据比较表达式的计算返回一个true或者false.
如果是true就把表达式1作为结果.
如果是false就把表达式2作为结果.

题目: 比较数值大小
int a = 3;
int b = 4;
int c = 5;
int d = 6;
int a_b_max = a > b? a : b; // 两数比较大小取大

int temp = a > b? a : b;
int max_abc = temp > c? temp : c; // 三数比较大小

int max = a > b?(a > c? a : c):(b > c? b : c); // 一步取三数大小
System.out.println(max);

int max_abcd = a > d? (a > b? (a > c? a : c):(b > c? b : c)):(c > d?(c > b? c : b):(d > b? d : b)); 四数一步比较

比较两个数是否相同:
int a = 10;
int b = 10;
boolean flag = (a == b)? true : flase;
boolean flag = (a == b);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值