千家信息网

C语言分支循环其嵌套语句的使用方法

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,今天就跟大家聊聊有关C语言分支循环其嵌套语句的使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Hello,everyone! forev
千家信息网最后更新 2025年01月19日C语言分支循环其嵌套语句的使用方法

今天就跟大家聊聊有关C语言分支循环其嵌套语句的使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

    Hello,everyone! forever之前给大家介绍了C语言的分支结构和循环结构,在分支中介绍了分支语句嵌套,但当时没有介绍 switch 嵌套,所以这次主要介绍 switch 嵌套和循环嵌套.

    首先来说说什么是嵌套吧!一个语句内包含另一个完整的语句结构称为语句嵌套。内嵌套的语句结构内还可以继续嵌套其他语句结构,这就构成多层嵌套。如:在循环体内嵌套一个完整的循环语句,就称为循环嵌套;在内部循环嵌套里在嵌套一个循环结构,就是多层循环。嵌套的含义是指"完整的包含"。

    switch 嵌套

    如同 if 语句一样,switch 语句也可以构成嵌套结构。在 switch-case 内部再嵌套一个 switch-case 语句,就构成 switch 嵌套结构;若内部的内部再继续嵌套就会构成多层嵌套。

    1、语法结构:

    以下是 switch 嵌套结构,default 可以看情况使用,不使用时就相当于不处理。一般用 default 时,在后面就可以不加 break。

    switch (表达式1){case 常量表达式1:语句1;        switch (表达式2)        {        case 常量表达式A:语句a;                 break;        case 常量表达式B:语句b;                break;                ……        default:语句N;        }        break;case 常量表达式2:语句2;        switch (表达式n)        {                ……        }        break;case 常量表达式3:语句3;        break;        ……default:语句n;}

    2、switch-case 嵌套语句程序示例

    例题一:简单的理解 switch 语句嵌套结构

    *简单的switch嵌套程序*#includeint main(){        int a = 0, b = 0;        scanf("%d %d", &a, &b);   //先输入两个值        switch (a)    //这个外部 switch 对 a 进行判断        {        case 1:       //a=1时进入内部嵌套 switch 语句                switch (b)   //这里 switch 对 b 进行判断                {                case 0:printf("$$$\n");                        break;                case 1:printf("&&&\n");                default:printf("***");   //这里是除了以上情况外的其他情况                        break;                }                break;   //结束 case1 内部的嵌套语句        case 2:printf("###\n");                break;        case 3:printf("@@@\n");        default:printf("!!!\n");        }        return 0;}

    运行结果:


    例题二:switch 和 if 的结合使用。请输入星期几的第一个字母来判断是星期几,如果第一个字母一样则继续判断第二个字母。

    *请输入星期几的第一个字母来判断是星期几,如果第一个字母一样则继续判断第二个字母。*#include#include//这是toupper 函数调用头文件int main(){        char letter1;        char letter2;        printf("请输入星期中某一天的第一个字母:(M/W/F/T/S)\n");        scanf("%c", &letter1);        letter1 = toupper(letter1);// toupper 是一个将小写字母转换成大写字母的函数        getchar();//利用 getchar 消除回车符'\n',如果没有这个 getchar ,        switch (letter1)     //那么后面继续输入第二个字母时就会输入回车符'\n',直接判断为 error        {        case 'M':printf("星期一\n");                break;        case 'W':printf("星期三\n");                break;        case 'F':printf("星期五\n");                break;        case 'T':printf("请输入第二个字母:(u/h)\n");                scanf("%c", &letter2);                if (letter2 == 'u')//case 内部结合 if-else 语句使用                {                        printf("星期二\n");                }                else if (letter2 == 'h')                {                        printf("星期四\n");                }                else                {                        printf("error\n");                }                break;        case 'S':printf("请输入第二个字母:(a/u)\n");                scanf("%c", &letter2);                if (letter2 == 'a')                {                        printf("星期六\n");                }                else if (letter2 == 'u')                {                        printf("星期天\n");                }                else                {                        printf("error\n");                }                break;        default:printf("error\n");        }        return 0;}

    运行结果:查找星期二

    循环嵌套

    循环结构的循环语句可以是任意合法的 C 语句。若一个循环结构的循环体中包含了另一循环语句,则构成了循环的嵌套,称为多重循环。嵌套的含义是指"完整的的包含",那么循环的嵌套是指在一个循环的循环体内完整的包含另一个或另外几个循环结构。C 语言中三种循环控制语句可以相互嵌套在一起。

    1、while 循环嵌套

    (1)语法结构:

    while (表达式1){        语句1;        while(表达式2)        {                语句2;        }        ……}

    (2)while 循环嵌套程序示例
    示例一:利用 while 循环嵌套打印九九乘法表

    //打印九九乘法表#includeint main(){        int i = 1, j = 1;        while (i < 10)        {                j = 1;                while (j <= i)                {                        printf("%d*%d=%-4d ", j, i, i * j);//%-4d意思是左对齐并且保证留四个字符长度的距离                        j++;                }                printf("\n");//起到换列的作用                i++;        }        return 0;}

    运行结果:九九乘法表打印

    2、do-while 嵌套循环

    (1)语法结构

    do{        语句1;        do        {                语句2;        } while ();//一定要注意do-while语句后面的"分号",不能丢        ……} while ();

    (2)do-while 循环嵌套示例
    随机打印2-n+1个数字

    #include//随机打印 2-n+1 个数int main(){                int i = 0;        int n = 0;        scanf("%d", &n);        do        {                i++;                do                {                        i++;                        printf("%d\n", i);                } while (i <= n);        } while(i<=n);        return 0;}

    运行结果:

    3、for 循环嵌套

    (1)语法结构

    for ( ; ; ){        语句1;        for( ; ; )        {                语句2;        }        ……}

    (2)for 循环嵌套示例
    示例一:数字金字塔

    //利用 for 循环嵌套实现数字金字塔#include//数字金字塔int main(){        int i = 0, j = 0;        int n = 0;        scanf("%d", &n);        for (i = 1; i <= n; i++)        {                for (j = n-i; j >0; j--)//此循环语句为了实现空格打印                {                        printf(" ");                }                for (j = 1; j <= i; j++)                {                        printf("%d ", i);                }                printf("\n");//实现换行        }        return 0;}

    运行结果:输入5,进行金字塔排列

    示例二:冒泡排序法
    for 循环实现从小到大冒泡排序

    //利用 for 循环嵌套实现从小到大冒泡排序#include//冒泡排序int main(){        int n = 0;        int i = 0, j = 0;        int arr[100] = { 0 };        int temp = 0;        scanf("%d", &n);        for (i = 0; i < n; i++)//利用循环给数组赋值        {                scanf("%d", &arr[i]);        }        for (i = 0; i < n - 1; i++)//冒泡排序外层循环进行 n-1 轮排序![请添加图片描述](https://img-blog.csdnimg.cn/9caa20aa99b742fc99e480f65f3c12ac.png)        {                for (j = 0; j < n - i - 1; j++)//冒泡排序内层循环每轮要进行 n-i-1 层比较                {                        if (arr[j] > arr[j + 1])//进行大小比较                        {                                temp = arr[j];                                arr[j] = arr[j + 1];                                arr[j + 1] = temp;                        }                }        }        for (i = 0; i < n; i++)        {                printf("%d ", arr[i]);        }        return 0;}

    运行结果:随机输入5个数进行排序

    示例三:打印 100-200 之间的素数
    for 循环嵌套打印100-200间素数

    //打印100-200间素数#include//打印100-200间素数int main(){                int j = 0;        for (int i = 100; i <= 200; i++)        {                for (j = 2; j < i; j++)                {                        if (i % j == 0)                        {                                break;                        }                }                if (i == j)                {                        printf("%d\n", i);                }        }        return 0;}

    运行结果:

    总结

    1、在循环以及循环嵌套中依然会常用到 break 和 continue ,之前文章详细介绍过这两个语句,因此要注意他们的使用;
    2、再多层嵌套里一般也会用到 goto 跳转语句,终止程序在某些结构中的深度嵌套;
    3、除以上基本嵌套之外,while、do-while、for以及和其他分支语句都可以任意嵌套组合使用,而且 C 语言中不限制嵌套的层数,我们可以合理组织程序的模块结构;
    4、在编写程序时,尽量避免过多的嵌套,影响代码整体美观,嵌套过多也对硬件相关配置要求更高。
    以上代码均可运行,所用编译环境为 vs2019 ,运行时注意加上编译头文件#define _CRT_SECURE_NO_WARNINGS 1

    看完上述内容,你们对C语言分支循环其嵌套语句的使用方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

    语句 循环 结构 星期 字母 表达式 输入 运行 示例 结果 排序 分支 程序 语言 常量 多层 数字 素数 语法 金字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 德布斯切尔nba数据库 我的世界仙逆服务器 数据库集群如何实现 工商银行软件开发中心 无秘 陈红松网络安全与管理第二版 买服务器建设软件如何入账 河南金顺网络技术有限公司 哈尔滨宸帆网络技术有限公司 长安伟一科技发力工业互联网 数据库新技术项目报告 数据库连接数没有增加 青岛盛邦宝通网络技术有限公司 易保网络技术上海有限公司电话 u8安装完怎么配置数据库服务器 拉萨互动安全教育展馆软件开发 美国对网络安全的研究现状 马龙区网络安全大队 网络安全终极奥义 华为it软件开发工程师 数据库年份 数据库的计算公式 织梦二个站一个数据库 vr软件开发视频教程 数字签名服务器厂商 梦幻西游转回原服务器怎么操作 高中网络安全和法律法规 数据库无法更改保存路径 三江学院网络安全专业 服务器FTP文件管理系统 txt文件乱码转化为数据库
    0