if(a < num && b-- == 0) 中b的值是多少

如下程序:

#include <stdio.h> int main() { int a = 5, b = 6; int num = 5; if(a < num && b-- == 0){} printf("num is %d, a is %d, b is %d./n", num, a, b); a = 3; if(a < num && b-- == 0){} printf("num is %d, a is %d, b is %d./n", num, a, b); }

问,b的值应该是多少。

输出:

num is 5, a is 5, b is 6. num is 5, a is 3, b is 5.

这说明:

语句 if(a < num && b-- == 0) 在执行时是分两个阶段执行的,

即先判断a < num,再判断b-- == 0,

并且,只有在a < num为真时,才判断b-- == 0;

这里是由 && 决定的,即如果第一个条件为假,就不需要判断后面的条件。

 

同理,如果是下面的语句

if(a < num || b-- == 0)

那么,根据“||”运算符, a < num和 b-- == 0每次都是需要运行的,

因为只有两个都判断之后,才能决定条件的真假。

你可能感兴趣的:(if(a < num && b-- == 0) 中b的值是多少)