这个问题很多java教材上都没怎么明确,但是老毕的视频上是讲过的。&表示And(与),&&表示And(短路)。它俩的区别就是:&无论左边是true还是false,右边都要再运算一遍,而&&则不同,当左边为false时,右边就不用运算了。因为我们知道,与的话,要两边都要是true时,总的才会是true,只要有一个是false,那总的就是false,无论后面是true还是false,因此多数情况下都是用&&效率高,很少用&。例如:a&&b,如果a非真,则不再判断b,直接输出表达式为false,若a为真,则再判断b;而a&b,若a非真,即使已经知道最后结果是false,但还是要再判断一下b的情况。
|和||的区别和上面的是类似的,|的话,两边都要运算;||的话,当左边为true,右边就不用运算了。说了那么多,希望lz能够明白。 |