上QQ阅读APP看书,第一时间看更新
5.5.3 嵌套使用if和while语句
在本小节中,读者可以将前面所使用到的if、if…else以及while嵌套结构进行相互结合,实现更为强大的功能。通过嵌套使用这些结构,可以更加深入地理解这些结构的使用方法及其功能。
可以在一个while循环结构中,使用if、if…else结构对其循环条件等变量进行判断,或者是实现跳出while循环的功能。例如,可以在while循环中,输出数据库中的学生信息。但是当查找到学生姓名为“王磊”,并且性别为“女”的学生时,程序需要停止循环并输出该学生的详细信息。具体代码如下:
#include <stdio.h> //包含头文件 #include <string.h> main() //主函数开始 { char na[]="王磊"; //定义并初始化字符数组 char sex[]="女"; char name[]="王磊\n女\n攀枝花学院\n应用电子技术\n"; //定义并初始化学生信息字符数组 while(1) //while循环结构 { if(strcmp(na,"王磊")==0) //判断学生姓名是否为王磊 { if(strcmp(sex,"女")==0) //判断姓名为王磊的学生是否是女性 { printf("该学生的相关信息如下所示:\n"); //输出提示语 printf("%s",name); //输出字符串 break; //跳出while循环 } else //如果没有查询到女性的学生王磊 { printf("数据库中没有女性的学生王磊\n"); //输出提示语 break; } } else //如果没有查找到学生王磊 { printf("数据库中没有叫王磊的学生\n"); //输出提示语 break; } } return 0; //程序正常结束 }
图5.25 程序运行结果
在实例代码中,使用了一个while循环结构,并且将其循环条件设置为1,表示将无限循环。在循环过程中,使用if…else结构对查询到的学生姓名和学生性别分别进行判断。如果学生姓名为“王磊”,则继续对其性别进行判断。若其性别为“女”,则表示该学生为用户需要查找的学生。此时,程序将输出该学生的详细信息。否则,程序将提示没有查找到指定的学生。程序运行后的结果如图5.25所示。
如图5.25所示,程序运行后,将输出查询到的指定学生的相关信息。
注意 当用户将while循环结构中的循环条件设置为1后,表示该循环将无限循环下去直到用户使用关键字break终止并跳出该循环为止。但是在一般情况下,用户最好是不要将其循环条件设置为1,因为无限循环容易导致程序运行出现失控的情况,从而影响应用程序。