JAVA中运算符的简单应用

运算符的应用在编程中也很常见,总结如下:
第一种:算术运算符
其中有
1.基本运算符: + - * / %
其中需要注意“ % ”的应用,返回值是余数,举例如下:

        System.out.println(10%3);//1
		System.out.println(10%-3);//1
		System.out.println(-10%3);//-1
		System.out.println(-10%-3);//-1

Ps:0不能作为除数。
2.增量赋值运算符: += -= *= /= %=
例:

       int i = 2;
       i += 1;//i + 1 = 3

其他几种应用方法相同。
3.自增/自减运算符: ++ –
例:前置++

        int i = 10;
        int a = ++i;//i=i+1;a=i
		System.out.println(a);//11
		System.out.println(i);//11 

后置++

		int i = 10;
		int a = i++;//a=i;i=i+1;
		System.out.println(a);//10
		System.out.println(i);//11

自减运算符的应用相同。
其中,有一个代码需要与C语言稍做区别:

        int i = 10;
		i = i++;
		System.out.println(i);//java中:10   C中:11

第二种:关系运算符
其中有:== != < > <= >=
应用如下:

        //关系运算符的返回值都是boolean类型
        //boolean类型的介绍在上一篇中已有介绍
		int a = 10;
		int b = 20;
		System.out.println(a == b);//false
		System.out.println(a != b);//true
		System.out.println(a < b);//true
		System.out.println(a > b);//false
		System.out.println(a <= b);//true
		System.out.println(a >= b);//false

第三种:逻辑运算符
逻辑与:&& 逻辑或:|| 逻辑非:!
举例:

        //逻辑运算符的操作数和返回值都是boolean;
		boolean num1 = true;
		boolean num2 = false;
		System.out.println(num1 && num2);//false

		int a = 1;
		int b = 2;
		System.out.println(a<b && a>b);//false

其中,&& 和 || 支持短路求值(只算前半部分);

System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false 
System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true

除数不能为零,因此计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.
由此可得出结论:

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

第四种:位运算符
java中位操作按二进制计算。
符号有:
1.按位与 & :二进制对应位都为1,则结果为1,否则为0

int a = 10; 
int b = 20; 
System.out.println(a & b); //0

ps:先把10, 20转换为二进制位
10: 0 1 0 1 0
20: 1 0 1 0 0
按对应位相与,结果为 0
2.按位或 |:二进制对应数字都为0,则为0,否则为1
3.按位异或 ^:二进制对应数字相同则为0 ,相异则为1
4.按位取反 ~:若该位为1,则为0,反之则为1

第五种:移位运算
1.左移 << :二进制位最左侧不要,最右侧补零
2.右移 >> :最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
例:

int a = 0x10; //0x表示十六进制
System.out.printf("%x\n", a >> 1);//8

3.无符号右移 >>> :最右侧位不要,最左侧补零

int a = 0xffffffff; 
System.out.printf("%x\n", a >>> 1);//7fffffff

第六种:条件运算符
java中唯一一个三目运算符:表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。
例:

        //求最大值
		int a = 10;
		int b = 20;
		int max = a>b ? a : b;
        System.out.println(max);

最后,在需要运算符的时候总需要考虑运算符的优先级。但其实我们并不需要强记硬背,只需要在有歧义的地方加括号即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值