你要明白&&这个的含义以及运行机制,&&操作,首先计算它前面的表达式:如果前面的表达式满足,则计算&&后面的表达式看满足否。如果前面的表达式不满足,则绝对不可能运行后面的表达式。因此,上述题首先执行 ++x>5,发现++x后x=2<5,因此前面不满足,那么整个条件不满足,因此不可能执行 ++x<10这个语句,因此x=2
&&和||都是短路运算符,&&运算符是前面的表达式值为0的时候后面的表达式将不执行。||运算符是前面的表达值值为1后面的表达式就不执行。拿&&运算符说,它本身的意思是前后两个表达式都成立才行。按顺序先算前面的表达式,如果这个表达式不成立,那么后面的表达式也就没有算的意义了,所以后面的表达式不执行了。 这里的++x>5即2>5值为0,后面的++x<10就没有执行
因为你的第一个条件(即y=++x>5)就不满足,对于“且&&”来说,只有第一个满足才会判断第二个条件,因为只要有一个不满足就没有继续判断的必要了,整个条件(y=++x>5&&++x<10)视为不成立。
&& 前面部分的值为假,因此不需要判断后面部分是否为真,整个值都是假,因此不会执行。
后面的答案很多,主要还是&&的理解;