- C语言从入门到精通(视频实战版)
- 胡超 梁伟 闫玉宝等编著
- 1340字
- 2021-03-28 21:40:06
5.5.1 嵌套使用if语句
在C语言中,if控制结构是可以实现嵌套功能的。其具体的嵌套格式如下:
if(判断条件)//if结构开始 { if(判断条件)//嵌套一个if选择结构 { ……//省略部分代码 } ……//省略部分代码 }
在if结构的嵌套使用中,用户将一个if结构嵌套在另一个if结构中使用。其目的在于对多个条件进行判断,并使用不同的代码段实现不同的功能。例如,对一个学生的年龄进行判断,如果该学生年龄小于18岁,则判断其为未成年人。若其年龄大于18岁而小于30岁,则判断其为青年人。具体代码如下:
#include <stdio.h>//包含头文件 main()//主函数开始 { int age=0;//定义并初始化年龄变量 printf("请用户输入学生年龄 ");//输出提示语 scanf("%d",&age);//获取用户的输入 if(age<18)//判断年龄使用小于18 { printf("该学生为未成年人! ");//输出提示语 } if(age>18)//判断年龄是否大于18 { if(age<30)//判断年龄是否小于30 { printf("该学生为青年人! ");//输出提示语 } } return 0;//程序正常结束 }
在实例代码中,首先使用一个if结构判断输入的年龄是否小于18岁。如果是,则输出提示语“该学生为未成年人”。否则,继续进行判断。
而在第二个if结构中,首先判断学生年龄是否大于18岁。如果是,则使用第三个if结构判断其是否小于30岁。这样,就可以精确地判断该学生是否为青年人。
该实例代码主要是讲解if结构的嵌套使用方法及其功能,该程序运行结果如图5.21所示。如果用户输入的年龄为16,程序经过判断,会输出提示语“该学生为未成年人!”,如图5.22所示。
图5.21 程序运行结果
图5.22 程序运行结果
除了可以嵌套使用if结构外,还可以对if…else进行嵌套使用。其使用格式如下:
if(判断条件)//if结构开始 { if(判断条件)//嵌套一个if选择结构 { ……//省略部分代码 } else//否则执行其他代码 { ……//省略部分代码 } } else//否则执行其他代码 { ……//省略部分代码 }
在上面的使用格式中,在if结构体中,嵌套使用了一个if…else结构。其主要作用是对用户指定的判断条件进行细致的分解、判断。例如,在很多学生信息中,需要查找到姓名为“王磊”,并且性别为“男”的学生信息。此时,就需要使用到嵌套的if…else结构。具体代码如下:
#include <stdio.h>//包含标准输入/输出头文件 #include <string.h>//包含字符串处理头文件 main()//主函数开始 { char sz1[10]="王磊";//定义并初始化字符数组 char sz2[5]="男";//定义并初始化 int age=21;//定义并初始化年龄 if(strcmp(sz1,"王磊")==0)//判断姓名是否相同 { if(strcmp(sz2,"男")==0)//判断性别是否相同 { printf("数据库查找完毕! ");//输出相关信息 printf("查找到该学生信息如下: ");//输出提示语 printf("姓名:%s ",sz1);//输出查找到的学生信息 printf("性别:%s ",sz2); printf("年龄:%d ",age); } else//如果没有查找到相同性别的学生 { printf("数据库中没有男性的%s: ",sz1);//输出提示语 } } else//如果没有查找到相同姓名的学生 { printf("数据库中没有查找到该学生的相关信息! "); } return 0;//程序正常关闭 }
图5.23 程序运行结果
在实例代码中,首先定义并初始化与学生相关的信息,并通过第一个if结构对学生的姓名进行判断。如果该学生是需要查找的学生,则继续使用if结构对该学生的性别进行判断。若性别是相同的,则说明该学生是需要查找的。这样,就可以将查找到的该学生信息输出。否则,将输出字符串“数据库中没有男性的该学生”。
如果在第一个if结构中,判断数据库中并无指定学生的姓名。则程序将输出提示字符串“数据库中没有查找到该学生的相关信息”,程序运行结果如图5.23所示。
注意 实例代码中,代码段“strcmp(sz2,”男”)”表示对指定的两个字符串进行比较。如果两个字符串相同,则该函数将返回0。否则,该函数将返回非零值。使用该函数时,需要在程序中添加头文件“string.h”。否则,该函数调用时将出现错误。