《C语言初阶》这篇文章带你全面认识switch语句的用法!(上)

简介: 《C语言初阶》这篇文章带你全面认识switch语句的用法!

前言

   🌈hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的switch语句的全面讲解!

   ⛳️预计博主这俩天会把分支语句和循环语句给彻底更新完,然后向函数出发!

   📚本期文章收录在《C语言初阶篇》,大家有兴趣可以看看呐

  ⛺️ 欢迎铁汁们 ✔️ 点赞 👍 收藏 ⭐留言 📝!

💬 switch语句的介绍

📌前面的一篇:《if语句的详解》

我们已经学会了if语句那么大家来看看这种情况:

📚 那么我们想编写一下这段程序该怎么办:

输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日

如果用if的多分支来实现呢?

代码演示;

#include <stdio.h>
int main()
{
  int day = 0;
  //输入
  scanf("%d", &day);
  if (1 == day)
    printf("星期1\n");
  else if (2 == day)
    printf("星期2\n");
  else if (3 == day)
    printf("星期3\n");
  else if (4 == day)
    printf("星期4\n");
  else if (5 == day)
    printf("星期5\n");
  else if (6 == day)
    printf("星期6\n");
  else if (7 == day)
    printf("星期天\n");
  else
    printf("输入错误\n");
  return 0;
}
  • 大家发现没,用 if...elseif ...else if 的形式太复杂,所以我们C语言就有了switch这个语法形式。

📜 switch语句:

switch语句也是一种分支语句。常常用于多分支的情况。

📑语法形式:

switch(整型表达式)
{
    case 整形常量表达式:
    语句;
}

💬 switch语句的语法形式

前面我们给大家简单介绍了一下:
switch语句的作用和语法形式那么该怎么使用呢?

  • ⛳️ 我们按照语法写看下对不对呢?
#include <stdio.h>
int main()
{
  int day = 0;
  //输入
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    printf("星期一");
  case 2:
    printf("星期二");
  case 3:
    printf("星期三");
  case 4:
    printf("星期四");
  case 5:
    printf("星期五");
  case 6:
    printf("星期六");
  case 7:
    printf("星期天");
  }
  return 0;
}

📚 演示结果:

📌诶大家会发现,这和我们预计的根本不一样?

  • 🌱 我们预计的是,按3之后只输出星期三。
  • 🌱 实际是,程序把星期三后面的全部都给输出了。
  • 🌱 这时就会需要我们的 break语句
  • 🌱下面我们来介绍一下它的作用

💭 在switch语句中的 break

⛳️在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

📚 而break是什么意思呢:

  • 🌲 break 英文意思是结束。
  • 🌲 而我们前面出现的问题就是, case语句 没有结束
  • 🌲 每次从我们选择的那个分支一直继续。
  • 🌲 所以我们需要每次在 case语句 后面加上 break语句 结束就好了。

📜 代码演示:

#include <stdio.h>
int main()
{
  int day = 0;
  //输入
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    printf("星期一\n");
    break;
  case 2:
    printf("星期二\n");
    break;
  case 3:
    printf("星期三\n");
    break;
  case 4:
    printf("星期四\n");
    break;
  case 5:
    printf("星期五\n");
    break;
  case 6:
    printf("星期六\n");
  case 7:
    printf("星期天\n");
    break;
  }
  return 0;
}

👑 代码结果:

哦豁,这下我们是不是就把问题给解决了。

  • 知识点
  • 🌱 在 switch语句 中,caes是我们分支语句的入口。
  • 🌱 break 是我们分支语句的出口,跳出分支

💡 而有时候我们的需求变了:

📚 该怎么编写呢?

  1. 输入1-5,输出的是“weekday”;
  2. 输入6-7,输出“weekend”

📜 代码演示:

#include <stdio.h>
//switch代码演示
int main()
{
    int day = 0;
    switch(day)
   {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   }
    return 0;
}

🐣 这样我们就完美解决问题啦!

💭 default子句

⛳️前面我们详细讲解了,switch语句

  • 但是有没有想过一个问题如果我们输入9会怎么样?
#include <stdio.h>
int main()
{
  int day = 0;
  //输入
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    printf("星期一\n");
    break;
  case 2:
    printf("星期二\n");
    break;
  case 3:
    printf("星期三\n");
    break;
  case 4:
    printf("星期四\n");
    break;
  case 5:
    printf("星期五\n");
    break;
  case 6:
    printf("星期六\n");
  case 7:
    printf("星期天\n");
    break;
  }
  return 0;
}

📖说明:

  • 🐲如果表达的值与所有的case标签的值都不匹配怎么办?
  • 🌱 其实也没什么,结构就是所有的语句都被跳过而已。
  • 🌱 程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
  • 🌱 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
  • 🌱 你可以在语句列表中增加一条default子句,把下面的标签
  • default:
  • 🌱 写在任何一个 case 标签可以出现的位置。



目录
相关文章
|
11月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的条件语句的Switch语句
本文详细介绍了C语言中的switch语句,包括其语法格式、运行流程、示例代码及注意事项。switch语句不仅使多分支选择更加清晰易读,还能在某些情况下提升性能。通过具体实例,如判断月份天数和数字转星期,帮助读者更好地理解和应用这一控制结构。
975 1
一文彻底搞清楚C语言的条件语句的Switch语句
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
1292 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
530 88
|
机器学习/深度学习 C语言
【c语言】一篇文章搞懂函数递归
本文详细介绍了函数递归的概念、思想及其限制条件,并通过求阶乘、打印整数每一位和求斐波那契数等实例,展示了递归的应用。递归的核心在于将大问题分解为小问题,但需注意递归可能导致效率低下和栈溢出的问题。文章最后总结了递归的优缺点,提醒读者在实际编程中合理使用递归。
594 7
|
存储 C语言
【C语言基础】一篇文章搞懂指针的基本使用
本文介绍了指针的概念及其在编程中的应用。指针本质上是内存地址,通过指针变量存储并间接访问内存中的值。定义指针变量的基本格式为 `基类型 *指针变量名`。取地址操作符`&`用于获取变量地址,取值操作符`*`用于获取地址对应的数据。指针的应用场景包括传递变量地址以实现在函数间修改值,以及通过对指针进行偏移来访问数组元素等。此外,还介绍了如何使用`malloc`动态申请堆内存,并需手动释放。
413 9
|
存储 程序员 C语言
揭秘C语言:这些核心知识你掌握了吗?一篇文章带你突破编程基础,开启高效编码之旅!
【8月更文挑战第22天】C语言作为编程基石,以简洁高效著称,历经数十年仍备受欢迎。本文通过梳理C语言的核心概念,帮助读者深入理解并提升技能。适合各水平读者。基础语法从`main`函数开始,如示例中的“Hello, World!”程序所示。C语言强调头文件包含与语句结尾的分号。变量和数据类型丰富多样,如`int`、`float`、`char`等,合理选择可优化内存使用和性能。指针用于间接访问内存,是C语言的关键特性。控制结构如循环和分支使程序逻辑更灵活。函数支持代码复用与模块化。深入学习还需掌握预处理指令、文件操作等高级特性。通过系统学习与实践,你将能更熟练地使用C语言,构建高效稳定的应用。
265 4
|
存储 缓存 编译器
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(下篇)
scanf处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存进⾏解读。 解读⽤⼾输⼊时,会从上⼀次解读遗留的第⼀个字符开始,直到读完缓存,或者遇到第⼀个不符合条件的字符为⽌。
591 2
|
存储 机器学习/深度学习 编译器
一篇文章,把你的C语言拉满绩点
一篇文章,把你的C语言拉满绩点
122 0
|
存储 C语言
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(上篇)
printf 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以定制输出⽂本的格式。
344 1
|
C语言
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
141 0