C语言中 if 和 else if 的区别

先看代码:我们本意是对i不同的值有不同的判断。

#include<stdio.h>
int main(void)
{
int i = ;
if(i == )
{
i++;
printf("%d\n",i);
}
if(i == )
{
i++;
printf("%d\n",i);
}
if(i == )
{
{
i++;
printf("%d\n",i);
}
}
return ;
}
#include<stdio.h>
int main(void)
{
int i = ;
if(i == )
{
i++;
printf("%d\n",i);
}
else if(i == )
{
i++;
printf("%d\n",i);
}
else if(i == )
{
{
i++;
printf("%d\n",i);
}
}
return ;
}

第一个代码运行结果


第二个代码


由结果可见,第二个代码是我们想要的,这是因为第一的代码中几个if语句是独立的,

可以进入任意多个if语句中,而第二个代码中if和else if是相互关联的,只有可能进入

其中一个,因此才会出现两种不同的情况。

上一篇:编译器 STVD 与 IAR 的差别 个人体验


下一篇:jQuery1.11源码分析(5)-----Sizzle编译和过滤阶段[原创]