if (a++ > 5 & b++ > 6){....}中, a++ > 5 是 alse, b++ > 6 也是false,因此()是false ,不再执行{}中的内容,但因为执行了 a++ > 5、 b++ > 6,a和b都会在逻辑运算结束后自加1,即最后输出时a = 6 , b = 7。
if (i++ > 5 && j++ > 6){ ... }中,&&是有短路功能,即左边为false的情况下就直接判定()为false了(&需要两边判定后才判定()),右边不再执行(同理 || 在左边为true时不再执行右边进行判断),因此在判断 i++>5为false后,i 会自加1,但右边的 j++ > 6 不执行,因此 j 还是保持原值
|