简单错误(1)

由于没有搞清楚运算符的优先级,今天犯了个错误,记下来以免下次再犯同样的错误!

错误代码如下:

Node prev=node.previou;
Node next=node.next;
System.out.println("prev==null :"+prev==null);
System.out.println("next==null :"+next==null);

本意是想用后面两条打印语句来判断prev与next对像是否为空,设想它输出的结果应该如下:
prev==null :true(false)
next==null :true(false)

但结果确不论prev、next是否为null,打印的结果都只有两个false,感觉莫名其妙,呵呵·最后终于找到问题的所在,原来在两条输出语句中由于"+"优先级高于"==",所以会先执行定符串相加的操作,再进行判断。所以输出才会一直为"false"。

附,运算附优先级表:
优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正) -(负) ~ ++ -- 从右向左
3 * / % 从左向右
4 +(加) -(减) 从左向右
5 << >> >>> 从左向右
6 < <= > >= instanceof 从左向右
7 == != 从左向右
8 &(按位与) 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值