逻辑操做符code
与(&&) 、或(||) 、非(!),此三个逻辑操做符的两边都必须是布尔值。不可将一个非布尔值当作布尔值在逻辑表达式中使用(C/C++能够)。it
按位操做符数据类型
与 (&)、或(|)、非(~)、 异或(︿),按位操做符用来操做整数基本数据类型中的单个“比特”(bit),即二进制位。二进制
对于布尔值,按位操做符具备与逻辑操做符相同的效果,只是它们不会中途“短路”。所谓的“短路”,就是当前面不知足条件时,后面的不会继续执行。 好比数据
int i =0; if(5<4&&(6>i++)){}//① System.out.println("i="+i); if(5<4 & (6>i++)){}//② System.out.println("i="+i); if(5>4||(6>i++)){} System.out.println("i="+i); if(5>4 | (6>i++)){} System.out.println("i="+i);
输出结果:co
i=0
i=1
i=1
i=2
在①中 当5<4判断的结果为false时,&& 就不会再进行后面的(6>i++) 判断了。可是在②中不管是5<4判断结果是ture或者false ,他都会继续执行(6>i++) 的判断。因此在①后输出的i=0,②后i=1。