C语言从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

5.5.2 嵌套使用while语句

在C语言中,while循环结构也可以被用于嵌套循环中。该循环结构嵌套后的功能主要是对循环后的信息或者变量值进行进一步的循环处理。其具体的嵌套使用格式如下:

while(循环条件)//循环开始
{
    ……//省略部分循环功能代码
    while(循环条件)//嵌套while循环
    {
        ……//省略部分嵌套循环功能代码
        }
}

在while循环嵌套中,需要为该循环结构分别指定两个循环条件。在循环运行的过程中,可以使用关键字break退出循环或终止循环。

例如,在一个班中,所有的学生都进行了选课。现在,老师需要统计一下学生的选课情况,具体的统计规则是首先过滤出选修C语言课程的学生,再在这些学生中过滤出选修该课程的男学生有多少人。具体的代码如下:

#include <stdio.h> //包含相关的头文件
#include <string.h>
main() //主函数开始
{
    char sz[]="C语言"; //定义并初始化字符数组
    char szname[30]="王磊\n李明\n王涛"; //定义并初始化字符数组
    char sex[]={"男"};
    while(strcmp(sz,"C语言")==0) //通过第一个while循环判断选修C语言课程的学生
    {
        printf("查找到选修%s的男学生信息如下所示:\n",sz);
        while(strcmp(sex,"男")==0) //判读选修该课程的男学生
        {
            printf("学生姓名如下所示:\n"); //输出提示语
            printf("%s\n",szname); //输出学生姓名
            break; //跳出while循环
        }
    printf("已经跳出第二个while循环了!:\n"); //输出提示语
        break; //跳出循环
    }
return 0;
}

在实例代码中,第一个while循环以选修C语言课程为循环条件,查找选修改课程的所有学生,并通过第二个while循环将选修改课程的男学生输出。这样,就可以通过两个while循环结构实现对目标数据的过滤功能。程序运行结果如图5.24所示。

在程序中,可以看到第二个while循环结束时,使用了关键字break。其主要作用在于使程序跳出第二个while循环结构而继续执行第一个while循环结构。

图5.24 程序运行结果

注意 关键字break只会作用于该关键字所在的循环结构,而不是整个循环结构。