首页
学习
活动
专区
圈层
工具
发布

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

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

    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.9K20

    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.8K20

    JavaScript switch case语句详解

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

    96510

    一个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

    828140

    为什么switch里的case没有break不行

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

    1.1K20

    知识扩展--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.7K30
    领券