C++中的Switch 语句详情

在日常的开发当中,我们经常会遇到一种情况,我们用一个变量表示状态。比如关闭-激活-完成,当我们需要判断状态的时候,就需要罗列if-else语句。

if (status == 'closed') {
    // todo
}else if (status == 'activated') {
    // todo
}else if (status == 'done') {
    // todo
}

如果只有少数几个还好,当我们要枚举的状态多了之后,写if-else就会非常繁琐。所以C++当中提供了switch语句来代替简单的if-else的罗列。

switch(expression) {
    case constant1:
        //todo
    case constant2:
        //todo
    case constant3:
        //todo
    default:
        //todo
}

要注意:switch语句当中的expression只能是一个整数或者是枚举类型,不能是其他类型。比如像是string就不可以作为switch语句的case,这个非常坑,很容易不小心写错。

所以上面的if-else语句可以改写成:

switch (status) {
    case 1:
        // todo1
        break;
    case 2:
        // todo2
        break;
    case 3:
        // todo3
        break;
    default:
        //todo
}

最后的default表示默认情况,也就是当之前的所有可能都不满足时会执行defalut标签下的内容。还有一点需要注意,switch语句有点像是路牌,它只是根据expression的值将代码跳转到对应的位置,并不是只运行对应标签的代码。

比如当我们的status为1时,代码会跳转到todo1处,在执行完todo1之后依然会继续往下执行todo2、todo3的代码。如果我们只希望执行todo1的代码,需要在末尾加上break,表示执行结束,跳出。这也是一个坑点,加不加break完全是两种效果。

数字1、2、3表示状态显然会导致含义不够明显,所以我们也可以使用枚举类型:

enum status {closed, done, activated}; 

status st;  

switch (st) {
    case closed:
        //todo
        break;
    case done:
        //todo
        break;
    case activated:
        //todo
 default:
        //todo
}

到此这篇关于C++ Switch 语句详情的文章就介绍到这了,更多相关C++ Switch 语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++性能剖析教程之switch语句

    前言 几乎每本面向初学者的C语言或C++书籍在前面两章都会提到分支控制语句if--else和switch--case,在某些情况下这两种分支控制语句可以互相替换,但却很少有人去深究在if--else和switch--case语句的背后到底有什么异同?应该选择哪一个语句才能使得效率最高?要回答这些问题,只能走到switch语句的背后,看看这些语句到底是怎么实现的. 基本格式 switch语句的基本格式如下: switch (表达式) { case 常量表达式1:<语句序列1><break;

  • 如何用c++表驱动替换if/else和switch/case语句

    目录 C++的表驱动法 一.常用示例 二.表驱动法 三.C++实现注意 四.实用案例 C++的表驱动法 目的:使用表驱动法,替换复杂的if/else和switch/case语句. 一.常用示例 以switch为例,常用示例如下: Funcition() { switch (key) { case key1: statements 1; break; case key2: statements 2; break; ... case keyn: statements n; break; defaul

  • 详解C++编程中的条件判断语句if-else与switch的用法

    if-else 语句 控制条件分支. 语法 if ( expression ) statement1 [else statement2] 备注 如果 expression 的值不为零,执行 statement1 .如果选项 else 存在,如果 expression 的值为零,执行 statement2. 表达式必须是算术或指针类型,或者必须是定义明确的整型或指针类型转换的类类型.有关转换器的信息,请参见标准转换. 在两个形式的 if 语句和 expression 语句中计算,可以具有除结构以外

  • 解析C++编程中的选择结构和switch语句的用法

    C++编写选择结构的程序 下面,通过两个实例来说明如何编写较为复杂的C++程序. [例]编写程序,判断某一年是否为闰年. #include <iostream> using namespace std; int main( ) { int year; bool leap; cout<<"please enter year:";//输出提示 cin>>year; //输入年份 if (year%4==0) //年份能被4整除 { if(year%100

  • C++中的Switch 语句详情

    在日常的开发当中,我们经常会遇到一种情况,我们用一个变量表示状态.比如关闭-激活-完成,当我们需要判断状态的时候,就需要罗列if-else语句. if (status == 'closed') { // todo }else if (status == 'activated') { // todo }else if (status == 'done') { // todo } 如果只有少数几个还好,当我们要枚举的状态多了之后,写if-else就会非常繁琐.所以C++当中提供了switch语句来代

  • Swift中swift中的switch 语句

    废话不多说了,直接给大家贴代码了,具体代码如下所示: /** switch 语句 */ let str = "aAbBacdef" let str2 = "aAbBadef" let str3 = "aAbBadeff" // var array = []; for c in ["A", "a", str3] { switch c { // case "a": case "a&

  • 如何删掉编程中的 Switch 语句

    目录 什么是多重方法? 多重方法是什么样子? 多重方法有什么好处? 实现一个多重方法库 多重方法是一种有趣的方式,可以帮你摆脱令人讨厌的 switch.而且,这也有助于提升代码的可读性.所以,在决定继续坚持使用 switch 之前,一定要先试一试. 本文最初发布于 Bits and Pieces. 很多开发者都讨厌switch语句,包括我.并不是因为这个语句没用,也不是因为它太难了. 理解switch语句的工作原理非常简单,问题是当你真的遇到它时,就必须停下手头的一切工作,集中精力阅读它,以确保

  • PHP中的switch语句的用法实例详解

    switch是一个开关语句,那么很多朋友都只知道简单的switch开关语句的用法了,下面一聚教程小编就为各位详细的介绍一下switch用法例子吧. 只所以称为"高级"用法,是因为我连switch的最基础的用法都还没有掌握,so,接下来讲的其实还是它的基础用法! switch 语句和具有同样表达式的一系列的 IF 语句相似.很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码.这正是 switch 语句的用途. 注意: 注意和其它语言不同,cont

  • Swift编程中的switch...case语句实例解析

    Swift中的switch...case语句可以判断对象类型, Objective-C中则必须是整数. 不可以穿透,可以不写break, var rank = "A" switch rank{ case "A": //相当于if print("优") case "B": // 相当于else if print("优") case "C": // 相当于else if print(&quo

  • php中switch语句用法详解

    本文介绍php中的switch语句的用法,它跟其他语句中的switch用法差不多的,但注意有有一个break语句. PHP中switch语句的标准语法: switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break; default: code to be exe

  • 深入剖析Go语言编程中switch语句的使用

    switch语句可以让一个变量对反对值的列表平等进行测试.每个值被称为一个的情况(case),变量被接通检查每个开关盒(switch case). 在Go编程,switch有两种类型. 表达式Switch - 在表达式switch,case包含相比较,switch表达式的值. 类型Switch - 在这类型switch,此时含有进行比较特殊注明开关表达式的类型. 表达式Switch 在Go编程语言中表达switch语句的语法如下: 复制代码 代码如下: switch(boolean-expres

  • PHP Switch 语句之学习笔记

    PHP 中的 Switch 语句用于执行基于多个不同条件的不同动作. Switch 语句 如果您希望有选择地执行若干代码块之一,请使用 Switch 语句. 使用 Switch 语句可以避免冗长的 if..elseif..else 代码块. 语法 复制代码 代码如下: switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be execu

  • Java7到Java17之Switch语句进化史示例详解

    目录 前言 Java 7 Java 8 Java 12 Java 13 Java 14 Java 17 总结 前言 自 Java 7 以来,java 中的 switch 语句经历了快速发展.因此,在本文中,我们将通过示例讨论 switch 语句从 java 7 到 java 17 的演变或变化. Java 7 在 Java 7 之前,switch case 中只能使用整数,这个语法持续了很长的一段时间. int value = 5; switch (value) { case 1: System

  • Swift开发中switch语句值绑定模式

    Switch简介 Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性. // switch语句值绑定模式 let point = (100, 10) switch point { // 遇到有匹配的就不会在执行下一个了 这样子也可以啊case let (x, y) case (let x, let y): print("\(x): \(y)") //

随机推荐