首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swift入门: Switch case

您已经看到了if语句和循环,但是Swift有另一种类型流控制,称为switch/case。这是最容易认为这是一个先进形式,如果,因为你可以有很多匹配和Swift将执行正确一个。...在switch/case最基本形式中,您告诉Swift您要检查哪个变量,然后提供该变量可能情况列表。Swift将找到与变量匹配第一个case,然后运行它代码块。...switch/case一个优点是,Swift将确保您案例是详尽无遗。也就是说,如果你变量可能有一个你不检查值,Xcode将拒绝构建你应用程序。...} 有一件事你应该知道,Swift中switch/case块可能不会像你看到其他语言那样(fall through: 从一个case运行完后直接到下一个case继续运行)。...本文来自Hacking with Swift给swift初学者入门课程Swift for Complete Beginners Switch case

64010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java switch case语句

    1 问题 在什么情况下使用switch语句,以及如何使用switch语句。 2 方法 swith 语句主要用于判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支。...基本格式如下: 例题:某同学某门课成绩可能结果为1,2,3,4,和5。当成绩为1时请输出不及格;成绩为2时请输出及格;成绩为3时请输出中等;成绩为4时请输出良好;成绩为5时请输出优秀。...public class HomeWork105 { public static void main(String[] args) { int i=5; switch(...i){ case 1: System.out.println("不及格"); break; case...break; } } } 3 结语 针对switch语句使用问题, switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 值,再根据是否有 break,

    1.3K20

    java switch case 语句

    语法: switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量case语句...default : //可选 //语句 } switch case 语句有如下规则: switch 语句中变量类型可以是: byte、short、int 或者 char。...每个 case 后面跟一个要比较值和冒号。 case 语句中数据类型必须与变量数据类型相同,而且只能是常量或者字面常量。...当变量值与 case 语句值相等时,那么 case 语句之后语句开始执行,直到 break 语句出现才会跳出 switch 语句。 当遇到 break 语句时,switch 语句终止。...switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 值,再根据是否有 break,判断是否继续输出,或是跳出判断。

    1.4K20

    JavaScript switch case语句详解

    ,如果相等,则执行其后语句段,只有遇到 break 语句,或者 switch 语句结束才终止;如果不相等,则继续查找下一个 case。...switch 语句包含一个可选 default 语句,如果在前面的 case 中没有找到相等条件,则执行 default 语句,它与 else 语句类似。...,默认执行代码 console.log("游客"); } 当 JavaScript 解析 switch 结构时,先计算条件表达式,然后计算第一个 case 子句后表达式值,并使用全等===运算符来检测两值是否相同...语句,就会发生连续执行情况,从而忽略后面 case 子句条件限制,这样就容易破坏 switch 结构逻辑。...在 switch 结构内,先使用 case 枚举 4 种可预知算术运算,当然还可以继续扩展 case 子句,枚举所有可能操作,但是无法枚举所有不测,因此最后使用 default 处理意外情况。

    42310

    一个switch case引起线上bug

    当时第一反应是不可能 2、通过QA同学提供test case,在测试环境通过curl发送请求,发现果然广告返回值跟预期不符。 3、通过git log对比,发现近期只有一个switch语句有修改。...深思 为什么在未增加新case之前,test case能通过呢?仔细找QA问了下case逻辑,原来,case每次都会返回bid_type = 2。...此处,我们再贴一次之前代码: switch (dsp_res->bid_type()) {         case 0:         {           auto info = dsp_response...此处列下switch case三个规则:switch...case三个规则: 既无成功匹配,又无default子句,那么swtich语句块什么也不做; 无成功匹配,但有default,那么swtich...\n" );     }     printf("Value of i = %d",i);     return 0; } 输出: 原因: switch参数必须可以转换成一个整数 将default

    741140

    为什么switchcase没有break不行

    javac编译和javap查看: 「tableswitch」和「lookupswitch」都用于switch条件跳转,前者用于case值连续,例如上面代码中0、1、2;后者用于case值不连续。...从字节码可以看出:switchcase条件和对应代码块是分开。...如果case 0匹配成功,则跳到标号28执行,执行完代码块对应31、32指令之后,执行35goto指令跳转到标号55,这样就跳出了switch作用范围,case 1和2也不会被执行。...从字节码也可以看出if和switch区别:if条件和代码块字节码是顺序switch条件和代码块是分开;if自动生成goto指令,switch只有加了break才生成goto指令。...结语 casebreak告诉前端编译器:「给每个case对应代码块最后加上goto」。这样,执行完匹配上代码之后,就可以略过后面的case代码块了。

    74920

    知识扩展--if...else...与switch...case...执行原理if和switch原理

    一、简述   编程语言中条件分支结构有两种:if-else和switch-case,这两种条件分支之间可以相互转换,但是也存在一些区别,那么什么时候该用if-else,什么时候该用switch-case...,执行过程是当 switch 后表达式值和 case 语句后值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配 case 语句则执行 default...2.3 总结 switch-case会生成一个跳转表来指示实际case分支地址,而这个跳转表索引号与switch变量值是相等。...由此看来,switch-case结构有一点以空间换时间意思,当分支较多时候明显switch-case结构实行效率会高很多。...但是switch-case缺点是只能处理常量匹配,在仅有常量选择分支时候,可以选用switch-case结构,而此时通过遍历数组比较更是不可取一种方式,但是if-elseif可以应用于更多场合

    1.5K30

    用表驱动代替switch-case

    不知道从什么时候开始,switch-case语句成了代码坏味道代名词,写代码时候小心翼翼地避开它,看到别人代码中switch-case就皱眉头,想想其实大可不必这样,switch-case语句并不是代码坏味道根源...,坏味道来自糟糕代码(结构)设计,比如过多switch-case分支,或者多重switch-case嵌套等等,这些都将导致代码可读性下降,如果再加上代码风格较差,代码不对齐,那么坏味道就相当地大了。...简短switch-case还是继续用吧,但是对于分支太多switch-case最好能想办法化解开,那么什么算长什么算短呢?...化解长switch-case方法有很多种,用函数封装或者宏取代case块是治标不治本方法,使用表驱动通常是治疗这种顽症有效方法,本文将介绍如何用表驱动方法化解长switch-case。...这是使用switch-case典型场景,先看一个使用switch-case方案: STATUS DriverIoControl(UINT function_no, PVOID para_in

    69150
    领券