&和|是按位运算,在计算的时候,系统会把变量转换成对应的二进制码来计算,比如说十进制5对应的二进制就是0101,十进制3对应的二进制就是0011,他们之间进行按位与运算(&),结果就是 0001,对应的十进制就是1,按位与只有对应位都为1结果对应才为1,按位或运算(|)结果就是0111,对应的十进制就是7,按位或只要对应为其中有一个为1结果中对应位就为1。
至于&&和||这个是逻辑运算符,是和运算符两边的逻辑值来判断的,需要注意的是 &&逻辑与运算如果前面为false就不会执行后面的表达式,||逻辑或如果前面的表达式结果为true就不会执行后面的表达式 |