首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小朋友学C语言(29):switch case语句

小朋友学C语言(29):switch case语句

作者头像
海天一树
发布于 2018-04-17 04:32:56
发布于 2018-04-17 04:32:56
1.1K00
代码可运行
举报
文章被收录于专栏:海天一树海天一树
运行总次数:0
代码可运行

switch case语句与if elseif语句类似,都是从多个选择条件里选取一个来执行。

(一)先来看一个if elseif程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main() 
{
    int number;
    printf("Please input an integer between 1~7: ");
    scanf("%d", &number);
    printf("Today is ");
    if(1 == number) 
    {
        printf("Monday!");
    }
    else if(2 == number) 
    {
        printf("Tuesday!");
    }
    else if(3 == number) 
    {
        printf("Wednesday!");
    }
    else if(4 == number) 
    {
        printf("Thursday!");
    }
    else if(5 == number) 
    {
        printf("Friday!");
    }
    else if(6 == number) 
    {
        printf("Saturday!");
    }
    else if(7 == number) 
    {
        printf("Sunday!");
    }
    else
    {
        printf("a wrong day! Please input an integer between 1~7!");
    }
    return 0;
}

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Please input an integer between 1~7: 7
Today is Sunday!

(二)再用switch case语句实现相同的功能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main() 
{
    int number;
    printf("Please input an integer between 1~7: ");
    scanf("%d", &number);
    printf("Today is ");
    switch(number) 
    {
        case 1:
            {
                printf("Monday!");
                break;      
            }
        case 2:
            {
                printf("Tuesday!");
                break;      
            }
        case 3:
            {
                printf("Wednesday!");
                break;      
            }
        case 4:
            {
                printf("Thursday!");
                break;      
            }
        case 5:
            {
                printf("Friday!");
                break;      
            }
        case 6:
            {
                printf("Saturday!");
                break;      
            }
        case 7:
            {
                printf("Sunday!");
                break;      
            }
        default:
            {
                printf("a wrong day! Please input an integer between 1~7!");
                break;              
            }
    }
    return 0;
}

运行结果1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Please input an integer between 1~7: 7
Today is Sunday!

运行结果2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Please input an integer between 1~7: 10
Today is a wrong day! Please input an integer between 1~7!

注意: switch case的结构为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch(表达式或变量或常量)
{
     case 条件1:
        {
            执行语句;
            break;
        }
    case 条件2:
        {
            执行语句;
            break;
        }
    ……
    default:
        {
            执行语句;
            break;
        }
}

这里“break;”表示中断,若忘了写,程序会继续执行下面的条件。

(三)试试下面这个程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main() 
{
    int number;
    printf("Please input an integer between 1~7: ");
    scanf("%d", &number);
    printf("Today is ");
    switch(number) 
    {
        case 1:
            {
                printf("Monday!");  
            }
        case 2:
            {
                printf("Tuesday!");     
            }
        case 3:
            {
                printf("Wednesday!");       
            }
        case 4:
            {
                printf("Thursday!");    
            }
        case 5:
            {
                printf("Friday!");      
            }
        case 6:
            {
                printf("Saturday!");    
            }
        case 7:
            {
                printf("Sunday!");      
            }
        default:
            {
                printf("a wrong day! Please input an integer between 1~7!");            
            }
    }
    return 0;
}

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Please input an integer between 1~7: 3
Today is Wednesday!Thursday!Friday!Saturday!Sunday!a wrong day! Please input an integer between 1~7!

(四)用while实现多次输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main() 
{
    int number;
    printf("Please input an integer between 1~7: ");
    scanf("%d", &number);
    // 循环终止条件为number小于或等于0 
    while(number > 0)
    {               
        printf("Today is ");
        switch(number) 
        {
            case 1:
            {
                printf("Monday!");
                break;      
            }
            case 2:
            {
                printf("Tuesday!");
                break;      
            }
            case 3:
            {
                printf("Wednesday!");
                break;      
            }
            case 4:
            {
                printf("Thursday!");
                break;      
            }
            case 5:
            {
                printf("Friday!");
                break;      
            }
            case 6:
            {
                printf("Saturday!");
                break;      
            }
            case 7:
            {
                printf("Sunday!");
                break;      
            }
            default:
            {
                printf("a wrong day! ");
                break;              
            }
        }//switch
        printf("\nPlease input an integer between 1~7: ");
        scanf("%d", &number);
    }//while
    printf("Loop end!\n");
    return 0;
}

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Please input an integer between 1~7: 7
Today is Sunday!
Please input an integer between 1~7: 5
Today is Friday!
Please input an integer between 1~7: 1
Today is Monday!
Please input an integer between 1~7: 10
Today is a wrong day!
Please input an integer between 1~7: 0
Loop end!

(五)若输入1~7,打印结果并结束程序;否则重新输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
void print_day(int num)
{
    switch(num) 
    {
        case 1:
        {
            printf("Monday!");
            break;      
        }
        case 2:
        {
            printf("Tuesday!");
            break;      
        }
        case 3:
        {
            printf("Wednesday!");
            break;      
        }
        case 4:
        {
            printf("Thursday!");
            break;      
        }
        case 5:
        {
            printf("Friday!");
            break;      
        }
        case 6:
        {
            printf("Saturday!");
            break;      
        }
        case 7:
        {
            printf("Sunday!");
            break;      
        }
        default:
        {
            break;              
        }
    }//switch           
}
int main() 
{
    int number;
    printf("Please input an integer between 1~7: ");
    scanf("%d", &number);
    // 默认循环条件一直为真,遇到break循环才会终止
    while(1)
    {
        if(number >= 1 && number <= 7)  
        {
            printf("Today is ");
            print_day(number);
            printf("\nProgram end!\n");
            break;
        }           
        printf("It is a wrong day!\n");
        printf("\nPlease input an integer between 1~7: ");
        scanf("%d", &number);
    }//while
    return 0;
}

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Please input an integer between 1~7: 10
It is a wrong day!
Please input an integer between 1~7: 20
It is a wrong day!
Please input an integer between 1~7: 5
Today is a Friday!
Program end!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海天一树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【STM32F407】第2章 嵌入式网络协议栈基础知识
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619
Simon223
2025/10/22
1040
【STM32F407】第2章   嵌入式网络协议栈基础知识
以太网自协商机制--1000BASE-X自协商(一)
1000BASE-X基于ANSI INCITS 230-1994(FC-PH)开发的物理层标准。1000BASE-X使用了与FC相同的8B/10B编码机制。
追宇星空
2024/07/01
1.4K0
以太网自协商机制--1000BASE-X自协商(一)
后面尾缀-T、-X、-TX…分别表示的意思
2、常见的兼容性接口,还有100base-T,1000base-X,1000base-TX,1000base-FX前面分析过100/1000为速率,base表明使用的频率是基带,那么后面尾缀-T、-X、-TX…分别表示的意思?
碎碎思
2020/06/30
5.2K0
涨姿势!这才叫工业以太网
工业以太网是基于IEEE802.3(Ethernet)的强大的区域和单元网络。利用工业以太网,SIMATICNET提供了一个无缝集成到新的多媒体世界的途径。继10M波特率以太网成功运行之后,具有交换功能,全双工和自适应的100M波特率快速以太网(FastEthernet,符合IEEE802.3u的标准)也已成功运行多年。工业以太网是电力通信和电网信息化不可或缺的网络平台,而工业以太网交换机在其中更是扮演了重要的角色,现在让大家了解一下工业以太网的结构和专业术语。 一、拓扑结构 拓扑是网络中电缆的布置
机器人网
2018/04/23
1.4K0
涨姿势!这才叫工业以太网
网络芯片Auto MDI-X
交叉线(crossover cable):一头是568A标准,另外一头是568B标准。
徐师兄
2022/08/29
1.2K0
网络芯片Auto MDI-X
网络工程师必懂的以太网基础知识
以太网最早是指由DEC(Digital Equipment Corporation)、Intel和Xerox组成的DIX(DEC-Intel-Xerox)联盟开发并于1982年发布的标准。经过长期的发展,以太网已成为应用最为广泛的局域网,包括标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)、千兆以太网(1000 Mbit/s)和万兆以太网(10 Gbit/s)等。IEEE 802.3规范则是基于以太网的标准制定的,并与以太网标准相互兼容。
网络工程师笔记
2021/11/02
2.6K0
光纤基础知识汇总
最近频繁接触光纤,看到上面的一些字符,都不明白是什么,才知道书到用时方很少,于是决定马上补课,了解一下光纤的相关知识,这里把搜集到的资料跟大家共享。 以太网标准中关于10Base-T,100Base-T,100Base-TX,100Base-TX等等,一般的网络书籍上都很难见到他们的解释,很多概念都讲了,就是不讲这几个个代表什么,有什么区别。笔者搜集了一些资料,在这里汇总一下。 这些标准中前面的数字表示传输速度,单位是“Mbps”,最后的一个数字表示单段网线长度(基准单位是100m),Base表示“基带”的意思,Broad代表“带宽”
suveng
2019/09/17
1.2K0
带你了解以太网
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/54
joshua317
2021/09/01
5.1K0
带你了解以太网
CCIE学习(3)——基础知识回顾
1)存储转发:先存储接收的帧,然后再转发它们,这样可以先检查转发的帧是否存在错误。
py3study
2020/01/08
5410
以太网协议(IEEE 802.3)
物理层:定义传输介质(双绞线、光纤等)、信号编码(如曼彻斯特编码)、速率(10Mbps/100Mbps/1Gbps等)及连接器类型。
久绊A
2025/05/05
1K0
项目管理小小知识点总结
1、项目沟通渠道数计算公式: [N*(N-1)]/2 分子可知数量级为:N的平方。
全栈程序员站长
2021/12/27
4280
入行网工,才知道网线传输距离限制为100米!
无论是100M传输速率的五类双绞线,还是1000M传输速率的六类双绞线,最远有效传输距离都为100米。
ICT系统集成阿祥
2024/12/03
5650
入行网工,才知道网线传输距离限制为100米!
以太网遵循的IEEE 802.3 标准
无论用哪种呢方式实现网口通信,都离不开相关的标准协议,以太网主要遵循的协议是IEEE 802.3 标准,下面简单介绍下这个标准。
碎碎思
2020/06/30
8.6K0
以太网遵循的IEEE 802.3 标准
46张图带你了解线缆、WIFI、以太网协议和网络寻址
首先我们需要知道,想要将设备连接到网络,有两种方式可供选择,那就是「有线和无线」。
网络工程师笔记
2021/06/23
1.3K0
46张图带你了解线缆、WIFI、以太网协议和网络寻址
网线数据传输为什么不能超过100米?
对网络比较了解的朋友,都知道双绞线有一个“无法逾越”的“100米”传输距离。无论是10M传输速率的三类双绞线,还是100M传输速率的五类双绞线,甚至1000M传输速率的六类双绞线,有效传输距离为100米。
朗坤君
2021/08/02
3K0
单口千兆以太网物理层芯片
YT8521S是一款单口千兆以太网物理层芯片,YT8521S是一款高度集成的以太网收发器,符合10BASE-Te、100BASE-TX和1000BASE-T IEEE 802.3标准。它提供了传输和接收所需的所有物理层功能通过CAT.5E UTP电缆的以太网数据包。
芯动大师
2023/12/18
1.9K0
单口千兆以太网物理层芯片
思科网络专家介绍以太网自协商机制专题四
前面文章我们邀请了思科网络资深专家介绍数通专题系列,专家介绍了以太网自协商相关方面的文章。
通信行业搬砖工
2024/06/13
4060
思科网络专家介绍以太网自协商机制专题四
简谈基于FPGA的千兆以太网设计
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
2K0
简谈基于FPGA的千兆以太网设计
8000字34张图史诗级介绍同轴电缆、双绞线、光纤等线缆,超级详细!
各种线缆对于网络工程师来说应该是最为熟悉的东西了,线缆有很多种,比如直连线、交叉线、同轴电缆等,但是你知道不同种类的线缆,它们长啥样子吗?每种线缆的用途有哪些?本文瑞哥就带着大家好好学习一下这方面的知识点,如果觉得文章对您有所帮助,别忘了点赞转发哦,让我们直接开始!
网络技术联盟站
2023/02/06
1.4K0
8000字34张图史诗级介绍同轴电缆、双绞线、光纤等线缆,超级详细!
光纤百兆口和千兆口_交换机万兆光口能使用千兆模块吗
5.传统以太网物理层标准有10BASE2、10BASE5和10BASE-T三种,其中10BASE2为细缆以太网,要求使用细同轴电缆,10BASE5为粗缆以太网,要求使用粗同轴电缆,目前这两种基本淘汰;10BASE-T是传统以太网中最常用的一种标准,使用双绞线作为传输煤质。
全栈程序员站长
2022/09/27
1.2K0
推荐阅读
相关推荐
【STM32F407】第2章 嵌入式网络协议栈基础知识
更多 >
交个朋友
加入腾讯云官网粉丝站
双11活动抢先看 更有社群专属礼券掉落
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档