1)简单介绍三种形式的条件判断语句:if、else if、else
if:
if(表达式)
执行语句
if:判断表达式内容,如果为true(真),就执行语句
else if:
<span style="color:#333333">if(表达式)
执行语句
else if(表达式1)
执行语句1
......(很多的else if)
else if(表达式m)
执行语句m</span>
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!\n");
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!\n");
else if(bFalse)
printf("else if true!\n");
else if (bTrue)
printf("else if true!\n");
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!\n");
else if(bFalse)
printf("else if true!\n");
else
printf("else!\n");
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!
PS:在一个if条件判断中,如果之前的if和else if都未通过,那么执行到else为无条件通过
补充 (2020.2.13):
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
// 设定一个循环次数
int i = 0, count = 10;
while (i++ < count)
{
// 用if做一个判断, 当 i 为 4 的时候则执行 if 中的内容
if (i == 4)
{
// 简单打印一条内容
printf("i == 4.\n");
}
// 一个循环中有多个 if 进行判断
// 用if做一个判断, 当 i 为 3 的时候则执行 if 中的内容
if (i == 3)
{
// 简单打印一条内容
printf("i == 3.\n");
}
// 一个循环中有多个 if 进行判断
// 用if做一个判断, 当 i 为 2 的时候则执行 if 中的内容
if (i == 2)
{
// 简单打印一条内容
printf("i == 2.\n");
// 注意使用了 continue 后不会再执行下面的内容了
printf("continue.\n");
continue;
}
// 打印进行突出 continue
printf("i is %d, end.....\n", i);
}
return 0;
}
结果:
i is 1, end.....
i == 2.
continue.
i == 3.
i is 3, end.....
i == 4.
i is 4, end.....
i is 5, end.....
i is 6, end.....
i is 7, end.....
i is 8, end.....
i is 9, end.....
i is 10, end.....
简单讲解上面的程序:
1. 首先定义一个 int(整数类型)的变量 i 用于循环计数 和 定义一个 int(整数类型)的变量 count 用于表示总循环数
2. 然后执行 while 循环,进行一个循环内容的执行,每执行一次进行一次计数递增
3. 在 while 循环中进行 if 的判断,应要求在循环中增加多个 if 的判断,在每个的判断中进行简单的打印内容
4. 在循环中 if 的执行 取决于它的判断条件是否匹配,并且如果匹配也仅只会执行一次
5. 通过结果可以看出,在 while 中 执行到 continue 则不会再往下执行了,通过 i 为 2 的 if 判断则可知道