第一种情况:
if(表达式1)
语句1;
if(表达式2)
语句2;
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 20;
if (a > 18)
printf("成年人");
if (a <= 18)
printf("未成年人");
return 0;
}
这时候代码会运行判断第9行代码。
第二种情况:
if(表达式1)
语句1;
else if(表达式2)
语句2;
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 20;
if (a > 18)
printf("成年人");
else if (a <= 18)
printf("未成年人");
return 0;
}
这时候代码不会运行判断19行代码。
第一种情况运行时会依次判断表达式1和表达式2成立与否来决定是否执行语句1和语句2。
第二种情况运行时若表达式1成立,则会执行语句1。同时会跳过else if,else if的表达式2和语句2都会被跳过。
如若表达式1和2都不成立,则语句1和2都不会执行。(非上例的情况,这里可以自己写代码测试)
并且在C中,if后面的语句默认为1行语句,若需要多行语句则需要使用大括号将所有语句包括起来。