首页 > 其他分享 >C 语言 switch 语句的要点与注意事项总结

C 语言 switch 语句的要点与注意事项总结

时间:2024-06-03 09:35:23浏览次数:21  
标签:语句 case default break switch 注意事项 expression

C 语言的switch语句用于根据表达式的值进行多路分支选择。以下是switch语句的要点与注意事项:

要点:

  1. 基本语法

    1 switch (expression) {  
    2     case constant1:    // 代码块1       
    3         break;  
    4     case constant2:    // 代码块2
    5         break;  
    6     ...  
    7     default:           // 默认代码块
    8         break;
    9 }
  1. expression:是switch语句的条件表达式,其值会与case后面的常量进行比较。这个表达式的类型通常是整型或字符型。
  2. case:后面跟的是要与expression的值进行比较的常量。如果expression的值与某个case后面的常量相等,那么会执行该case下的代码块。
  3. break:在每个case的代码块后面,通常会有一个break语句。这是为了防止代码执行完一个case后继续执行下一个case的代码,即“贯穿”(fall-through)现象。当break语句被执行时,程序会跳出switch语句,继续执行switch后面的代码。
  4. defaultdefault是可选的,用于处理expression的值与所有case常量都不匹配的情况。如果没有default子句,且没有任何caseexpression的值匹配,那么switch语句内不会有任何操作被执行,建议每个switch语句都配有一个default分枝

注意事项:

  1. 类型匹配switch语句的表达式和case标签的类型必须是整型或字符型。不能是浮点型、字符串或其他复杂类型。
  2. break 的重要性:如前所述,为了防止“贯穿”现象,每个case后面通常应该有break语句。但如果你确实想要利用“贯穿”来实现某些逻辑,也可以故意省略break
  3. default 的位置default子句可以放在switch语句的任何位置,但通常放在最后,作为一种“如果上述所有情况都不匹配”的处理方式。
  4. 常量表达式case后面跟的必须是常量表达式,不能是变量或运行时才能确定的表达式。
  5. 效率考虑:虽然switch语句在语法上看起来比多个if-else语句更简洁,但在某些编译器或平台上,switch语句可能并不总是比if-else链更高效。编译器会根据具体情况进行优化。
  6. 代码可读性:当处理多个离散的、已知的值时,使用switch语句通常比使用多个if-else语句更易于阅读和维护。
  7. 避免使用魔法数字:在case子句中,尽量避免直接使用数字字面量,而是使用具有明确意义的常量或枚举值,以提高代码的可读性和可维护性。

 更进一步地,可参见如下详细介绍:

  1. case 标签的值不可超出 switch 条件的范围
  2. switch 语句中任何子句都应从属于某个 case 或 default 分枝
  3. case 和 default 标签应直接从属于 switch 语句
  4. 不应存在紧邻 default 标签的空 case 标签
  5. 不应存在内容完全相同的 case 分枝
  6. switch 语句的条件不应为 bool 型
  7. switch 语句不应只包含 default 标签
  8. switch 语句不应只包含一个 case 标签
  9. switch 语句分枝数量应在规定范围之内
  10. switch 语句应配有 default 分枝
  11. switch 语句的每个非空分枝都应该用无条件的 break 或 return 语句终止
  12. switch 语句应该用大括号括起来
  13. switch 语句不应嵌套

 

标签:语句,case,default,break,switch,注意事项,expression
From: https://www.cnblogs.com/lucky-bubble/p/18228068

相关文章

  • Shell阶段10 awk工作原理, 内部变量, 正则/比较/条件/逻辑表达式, 判断语句, 循环语
    AWK什么是awkawk是一个编程语言主要作用:对文本和数据的处理awk处理数据的流程1.扫描文件内容,从上到下进行扫描,按照行进行处理2.寻找匹配到的内容,进行读取到特定的模式中,进行行处理3.行满足指定模式动作,则输出到屏幕上面,不满足丢弃4.接着读取下一行继续处理,接着循环,直......
  • 【Python基础】循环语句(5073字)
    文章目录@[toc]什么是循环Python中的循环方式while循环格式示例运行过程应用while循环嵌套示例1示例2for循环格式示例内置函数range()的用法range(x)range(x,y)range(x,y,z)应用break与continuebreakwhile循环中的break未使用break使用breakfor循环中的breakc......
  • excel生成insert语句
    在Excel中使用VBA生成INSERT语句通常涉及遍历工作表中的数据,并根据数据内容构造SQL语句。以下是一个基本的示例步骤和VBA代码片段,说明如何实现这一过程: ###步骤说明:1.**打开Excel**,确保你的数据已经整理好,每一列对应数据库表的一个字段。2.**启用开发者选项卡**(如果尚......
  • Spark SQL的所有语句
     SparkSQL提供了一种基于结构化数据处理的高级API,它允许使用SQL或DataFrameAPI进行数据查询和分析。以下是SparkSQL中常用的语句:创建表格:使用CREATETABLE语句创建表格,可以基于现有数据源或手动定义模式。示例:CREATETABLEtableName(col1INT,col2STRING,......
  • MySQL常用语句总结
    本篇MySQL语句笔记录笔记所引用案例为B站未明学院SQL课程教学案例,个人觉得这个UP主的视频讲解特别仔细,感兴趣小伙伴可以去听听~一、数据库操作(MySQL运行界面)按Pageup和Pagedown可以将之前出现过的命令正序或者倒序展示,避免重复输入命令。--展示所有的数据库SHOWDATABASE......
  • [转帖]TPCH 22条SQL语句分析
    https://www.cnblogs.com/xibuhaohao/p/11413669.html 使用TPC-H进行性能测试,需要有很多工作配合才能获得较高性能,如建立索引,表数据的合理分布(使用表空间和聚簇技术)等。本文从查询优化技术的角度,对TPC-H的22条查询语句和主流数据库执行每条语句对应的查询执行计划进行分析,......
  • Python While 循环语句
    Python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:```while判断条件(condition):  执行语句(statements)……```执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值......
  • if,switch分支结构和while循环
    程序设计三种结构顺序结构分支结构做判断,做选择if(条件){语句块;//条件为真时执行语句块}如果语句块只有一条语句,可以不加大括号(不推荐)要求if语句中不能省略括号,且括号成对出现二个里选择一个(2选1)if(条件1){    语句块1;}else{    语句块2;}......
  • if,switch分支结构和while循环练习
    1.类别税金单身17850美元以内按15%计,超出部分按28%计户主23900美元以内按15%计,超出部分按28%计已婚29750美元以内按15%计,超出部分按28%计离异14875美元以内按15%计,超出部分按28%计1998年的美国联邦税收计划是近代最简单的税收方案。它分为4个类别,每个类别有两个等级。......
  • JavaScript语法(二):你知道哪些JavaScript语句?
    我们在上一节课中已经讲过了JavaScript语法的顶层设计,接下来我们进入到更具体的内容。JavaScript遵循了一般编程语言的“语句-表达式”结构,多数编程语言都是这样设计的。我们在上节课讲的脚本,或者模块都是由语句列表构成的,这一节,我们就来一起了解一下语句。在JavaScrip......