&&是逻辑与。||是逻辑或。&是位与。|是位或。
“与”和“或”理解起来应该没什么难度吧?“与”就是“并且”的意思,比如现在有一个数字a,
a < 1 && a > 0
就是表示a在0和1之间;
a > 1 || a < 0
就表示a比1大,或者a比0更小。
那么“位”和“逻辑”有什么区别呢?首先是概念不一样,一个是针对计算机位进行的运算,一个是逻辑上的运算。
至于实际效果上的区别,我们来看一下,假如现在a是2,a > 1 | a < 0是这样运算的:首先计算a > 1,是true(1),下一步计算a < 0,是false(0),接下来计算true | false,得到true。而如果运算a > 1 || a < 0,第一步计算a > 1,是true,ok,不用再计算下去了,后面无论是true或者false都不重要,整个式子的值总是true的。这种情况下,使用逻辑与、逻辑或,将会少进行一次运算,为右侧运算进行计数之类的操作就可以发现这个现象。