&&和&的区别-创新互联

最近有朋友问我,&& 和 & 这个有啥区别啊?

创新互联从2013年创立,先为大姚等服务建站,大姚等地企业,进行企业商务咨询服务。为大姚企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

(本人内心os:&&在python中会报错——SyntaxError: invalid syntax。。。)

本着对待朋友认真负责的态度,查阅了一些大佬资料后,特地做出如下解释:

在Java 和 C# 等语言中,这二位有以下区别 ——

共同点:都可以用作逻辑与运算符(相当于and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

差异点:

(1)&&具备短路功能,&不具备短路功能,举个栗子:对于if(str != null && !str.equals(" "))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException,即传说中的空指针;But,如果将&&改为&——if(str != null & !str.equals(" ")) ,则会继续判断是否equals,而实际上str是null,则抛NullPointerException异常。

(2)&还可以用来做位运算,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,举个栗子:6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2。

按位与的运算规则:相同位的两个数字都为1,则为1;若有一个不为1,则为0,空位都当0处理。

0110  -->(十进制:6)

&(and)

1011  -->(十进制:11)

---------------

0010  -->(十进制:2)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:&&和&的区别-创新互联
链接分享:http://scyanting.com/article/hisjd.html