前言
情况说明:本人目前技术栈是Java这一套,所以这里提及的运算符测试都是在Java语言中的,不能保证在其他语言中也适用
作为一个程序员,你一定遇到过写的代码在你的逻辑里面没有问题,但是一运行就error满天飞。下面来看一个踩坑场景,求取 n 与 2倍m 的和:
/**
* 求取 n 与 2倍m 的和
* @param n
* @param m
* @return
*/
public int sum(int n,int m){
return n + m << 1;// 错误
//return n + (m << 1);// 正确
}
如果问题出现在基本的运算符优先级上,那很难找到问题的所在。并且,对于运算符的优先级掌握到位可以间接的节省代码的复杂度。
一、运算符分类
运算符可用于表示数据的运算、赋值和比较等。Java运算符分为:
- 算术运算:
+,-,*,/,%,++,-- - 赋值运算:
=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>= - 位运算符:
&,|,~,^,<<,>>,>>> - 比较运算符:
>,>=,<,<=,== - 逻辑运算符:
&&,&,||,|,!,^ - 三目运算符:
? :
二、运算符的说明
针对于三个操作数的叫做三目运算符(如?:),针对于两个操作数的叫做二目运算符(如 +),针对于一个操作数的叫做单目运算符(如++)。
1.算术运算
+:加法运算符
把运算符左右的两个数值加起来,也可作为字符串的连接运算符:
//1.数值相加
System.out.println(1+2);//put 3
//2.字符串拼接
System.out.println("a"+"b");//put ab
+运算符具有拼接字符串的功能,那么下面这个场景是怎样的:System.out.println(1+2+"3");//到底是怎么样执行的?它会先执行1+2=3,它也就等价于3+“3”,此时就是字符串的拼接,输出"33",这里涉及到int类型的3自动装箱为Intger类,之后在转化为String字符串进行拼接。
-:减法运算符
运算

本文介绍了Java中的运算符,包括算术运算、赋值运算、位运算、比较运算和逻辑运算。重点讨论了运算符的优先级,强调了正确理解运算符优先级对编写简洁有效代码的重要性。通过实例解析了自加/自减运算符、三目运算符以及位运算符的用法,并提供了区分短路与非短路逻辑运算符的示例。
最低0.47元/天 解锁文章
7286

被折叠的 条评论
为什么被折叠?



