在一个if语句中,括号里面包含多个条件时。条件是否被执行要看if语句里面各个条件是“与”的关系还是“或”的关系。
#include<stdio.h> void main(void) { int first=0; int second=0; if((++first)||(++second)) // 或 关系语句 { printf("if((first = %d) || (second = %d)) ",first,second); } first = second = 0; if((++first)&&(++second)) // 与 关系语句 { printf("if((first = %d) && (second = %d)) ",first,second); } }
运行结果
if((first = 1) || (second = 0)) if((first = 1) && (second = 1))
结果分析
1. 在第一个if语句中,条件之间为“或”关系。只要一个满足就跳出if判断,“++second”并未执行。所以second = 0;
2. 在第二个if语句中,条件之间为“与”关系。需要两个满足才跳出判断,“++second”需要执行。所以second = 1。