&和&&的区别?

Posted 爱吃醋的工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了&和&&的区别?相关的知识,希望对你有一定的参考价值。

&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(“”),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

补充:如果你熟悉javascript,那你可能更能感受到短路运算的强大,想成为JavaScript的高手就先从玩转短路运算开始吧。

以上是关于&和&&的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Java中&和&&的区别? [复制]

C语言中&和&&的区别?

& 和 && 区别

之间的区别 |和 ||或 & 和 && 用于比较 [重复]

&& 和& 的区别

&和&&的区别