先看代码:我们本意是对i不同的值有不同的判断。
#include<stdio.h> int main(void) { int i = 1; if(i == 1) { i++; printf("%d ",i); } if(i == 2) { i++; printf("%d ",i); } if(i == 3) { { i++; printf("%d ",i); } } return 0; }
#include<stdio.h> int main(void) { int i = 1; if(i == 1) { i++; printf("%d ",i); } else if(i == 2) { i++; printf("%d ",i); } else if(i == 3) { { i++; printf("%d ",i); } } return 0; }
第一个代码运行结果
2 3 4
第二个代码
2
由结果可见,第二个代码是我们想要的,这是因为第一的代码中几个if语句是独立的,
可以进入任意多个if语句中,而第二个代码中if和else if是相互关联的,只有可能进入
其中一个,因此才会出现两种不同的情况。