C语言条件判断语句:if、else if、else
1)简单介绍三种形式的条件判断语句:if、else if、else
if:
if(表达式)
执行语句
if:判断表达式内容,如果为true(真),就执行语句
else if:
if(表达式)
执行语句
else if(表达式1)
执行语句1
......(很多的else if)
else if(表达式m)
执行语句m
else if:如果if的判断没有通过,则进行下面的else if,如果当前的else if判断通过,则执行当前else if的语句。如果没通过,则一直执行下面的else if判断
else:
if(表达式)
执行语句
else if(表达式)
执行语句
else
执行语句
else:else为最后的分支,如果在else之前的if、else if判断都没有通过就会执行else
PS:在一条if条件判断中,可以有无数条else if,但是只能有一个else
2)三种形式的判断语句使用:if、else if、else
if:
为了可以看到结果使用printf进行显示结果
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
bool bTrue = true;
if (bTrue)
printf("if true!");
return 0;
}
结果:
if true!
简单讲解上面的程序:
包含了stdio.h是为了使用printf函数进行格式化输出结果
包含了stdbool.h,stdbool.h是C99添加_Bool(布尔值类型)关键字新增的头文件,在stdbool.h中为我们定义了三个我们所使用到的宏:
bool _Bool(布尔值类型)
true 1
false 0
所以此处定义了一个_Bool(布尔值类型)变量bTrue,并且赋值true(1)
所以此处判断为真,最终printf格式化输出了true
PS:_Bool(布尔值类型)占1字节内存大小
PS:判断真假,真只要不等于0,假为0
else if:
为了可以看到结果使用printf进行显示结果
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
bool bTrue = true;
bool bFalse = false;
if (bFalse)
printf("if true!");
else if(bFalse)
printf("else if true!");
else if (bTrue)
printf("else if true!");
return 0;
}
结果:
else if true!
简单讲解上面的程序:
定义了一个_Bool(布尔值类型)变量bTrue,并且赋值true(1)
定义了一个_Bool(布尔值类型)变量bFalse,并且赋值false(0)
下面的if、else if,此处故意定义多定义一个else if表示在一个if条件判断中可以有多个else if判断
首先第一个if,因为bFalse为0,所以判断为false(假),为通过,所以往下执行
下一个else if,因为bFalse为0,所以当前的else if判断为false(假),未通过,然后往下执行
下一个else if,因为bTrue为1,不等于0,所以当前的else if判断为true(真),通过,然后进行printf格式化输出else if true!,最后跳出当前这个if判断
PS:如果没有通过当前else if,则一直执行下面的else if判断,如果最后所有else if判断都没有通过,则执行else语句(else为无条件通过),如果也没有else,则最终跳出当前if判断语句
else:
为了可以看到结果使用printf进行显示结果
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
bool bTrue = true;
bool bFalse = false;
if (bFalse)
printf("if true!");
else if(bFalse)
printf("else if true!");
else
printf("else!");
return 0;
}
结果:
else!
简单讲解上面的程序:
定义了一个_Bool(布尔值类型)变量bTrue,并且赋值true(1)
定义了一个_Bool(布尔值类型)变量bFalse,并且赋值false(0)
首先执行第一个if,if判断为bFalse为false(假),未通过,继续执行下面的else if或else
下一个else if,else if判断为bFalse为false(假),未通过,继续执行下面的else if或else
下一个else,else为无条件通过,最终printf格式输出else!