" || " " && "都是双目运算符,也就是有两个操作数的运算符
" || " 逻辑或
" || "的意思是逻辑或,字面来解释就是逻辑意义上的"或"
a || b 就是 a或b。也就是说a和b只要有一个为真该条件判断就为真,即两者都为假该才为假
同时使用该运算符时表示的是一种条件判断,运算后的值为真就返回1(VS上),为
假就返回0(&&也是如此)
"短路"现象:程序运行时,按照从左往右的顺序进行,又因为" || "逻辑或的判断只要有一个为真,该运算就为真,所以在如果运算符左边的操作数,也就是a为真,那无论后面的b是真还是假,该运算结果一定是真,所以没有必要去判断b的真假,b就会直接被程序忽略跳过,不会进行。
" &&" 逻辑与
" && "的意思是逻辑与,字面解释就是逻辑意义上的"与","和"
a &&b 就是a与b,a和b。也就是说a和b只要有一个为假该条件判断就为假,即两者都为真才为真
"短路"现象:运算符左边的操作数,即a为假,则无论后面的b是真还是假,该运算结果一定是假,所以程序运行时会直接跳过b的执行。
优先级问题:
简单来说,运算符优先级为:!>算术运算符>关系运算符>&&> || > 赋值运算符
要注意的是,&&优先级大于 ||
如下图
如果 || 的优先级大或者两者优先级同级,都应该先进行 || 运算,两边的值都为非零,即为真,所以"逻辑或"结果是真,即为1,所以右式为 1 && 0,后边为0,即为假,所以"逻辑与"的结果就是假,所以得到0。与事实不符,可得&&优先级更大。