很多人都说分不清if-else和if-else if-else if…的区别。
下面我将详细的讲解这种语句的用法,简单的if语句我就不说了。
先说个if-else的:
代码:
#include <stdio.h>
int main()
{
int val;
scanf("%d", &val);
if (val > 8)
printf("a\n");
else
printf("b\n");
return 0;
}
运行结果:
加上个else if
代码:
#include <stdio.h>
int main()
{
int val;
scanf("%d", &val);
if (val > 8)
printf("a\n");
else if (val > 20)
printf("b\n");
return 0;
}
为什么输入9跟30的结果都一样呢?原因是在if –elseif….语句中只要第一个if条件成立或者第一个else if语句成立,后面的else if即使满足else if的条件也不会执行else if及else的内容。而如果是多个if的话,最后的else会执行的。
再说一下在使用if else中容易忽略的问题,就是始终记住else会与最近的if匹配。
代码:
#include <stdio.h>
int main()
{
int val;
scanf("%d", &val);
if(val > 2)
{
if(val < 8)
printf("a");
}
else
{
printf("b");
}
return 0;
}
运行结果:
我们可以看到,输入10时是没有打印出b的,因为它执行了if语句。
代码:
#include <stdio.h>
int main()
{
int val;
scanf("%d", &val);
if(val > 2)
{
if(val < 8)
printf("a");
else
printf("b");
}
return 0;
}
运行结果:
这里的10是输出b的,我们可以通过这两个代码看出这个去区别,就是else始终会与最近的if匹配。