时间:2021-05-02
Swift中的switch...case语句可以判断对象类型, Objective-C中则必须是整数。
不可以穿透,可以不写break,
因为不能穿透所以不能这么写
只能这么写
不能不写default
? 1 2 3 4 5 6 7 8 9 var rank2 = "A" switch rank2{ case "A": print("优") case "B": print("良") case "C": print("差") }default位置只能在最后
? 1 2 3 4 5 6 7 8 9 10 11 var rank3 = "A" switch rank3{ default: print("没有评级") case "A": print("优") case "B": print("良") case "C": print("差") }在case中定义变量不用加大括号
? 1 2 3 4 5 6 7 8 9 10 11 12 var rank4 = "A" switch rank4{ case "A": var num = 10 print("优") case "B": print("良") case "C": print("差") default: print("没有评级") }区间和元祖匹配
? 1 2 3 4 5 6 7 8 9 var num = 10; switch num{ case 1...9: print("个位数") case 10...99: print("十位数") default: print("其它数") } ? 1 2 3 4 5 6 7 8 9 10 11 var point = (10, 15) switch point{ case (0, 0): print("坐标在原点") case (1...10, 10...20): // 可以在元祖中再加上区间 print("坐标的X和Y在1~10之间") case (_, 0): // X可以是任意数 print("坐标的X在X轴上") default: print("Other") }值绑定
? 1 2 3 4 5 6 7 8 9 10 11 var point = (1, 10) switch point{ case (var x, 10): // 会将point中X的值赋值给X print("x= \(x)") case (var x, var y): // 会将point中XY的值赋值给XY print("x= \(x) y= \(y)") case var( x, y): print("x= \(x) y= \(y)") default: print("Other") }根据条件绑定
? 1 2 3 4 5 6 7 8 var point = (100, 10) switch point{ // 只有where后面的条件表达式为真才赋值并执行case后的语句 case var(x, y) where x > y: print("x= \(x) y= \(y)") default: print("Other") } fallthrough关键字
Swift语言中的switch不会从上一个case分支落入到下一个case分支中。相反,只要第一个匹配到的case分支完成了它需要执行的语句,整个switch代码块完成了它的执行。相比之下,C语言要求你显示的插入break语句到每个switch分支的末尾来阻止自动落入到下一个case分支中。Swift语言的这种避免默认落入到下一个分支中的特性意味着它的switch 功能要比C语言的更加清晰和可预测,可以避免无意识地执行多个case分支从而引发的错误。
如果你确实需要C风格的落入(fallthrough)的特性,你可以在每个需要该特性的case分支中使用fallthrough关键字。下面的例子使用fallthrough来创建一个数字的描述语句。
这个例子定义了一个String类型的变量description并且给它设置了一个初始值。函数使用switch逻辑来判断integerToDescribe变量的值。当integerToDescribe的值属于列表中的质数之一时,该函数添加一段文字在description后,来表明这个是数字是一个质数。然后它使用fallthrough关键字来"落入"到default分支中。default分支添加一段额外的文字在description的最后,至此switch代码块执行完了。
如果integerToDescribe的值不属于列表中的任何质数,那么它不会匹配到第一个switch分支。而这里没有其他特别的分支情况,所以integerToDescribe匹配到包含所有的default分支中。
当switch代码块执行完后,使用println函数打印该数字的描述。在这个例子中,数字5被准确的识别为了一个质数。
NOTE:fallthrough关键字不会检查它下一个将会落入执行的case中的匹配条件。fallthrough简单地使代码执行继续连接到下一个case中的执行代码,这和C语言标准中的switch语句特性是一样的。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Swift中的switch语句,只要第一个匹配的情况(case)完成执行,而不是通过随后的情况(case)的底部,如它在C和C++编程语言中的那样。以下是C和
Switch简介Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行
java中的switchcase语句switch-case语句格式如下:switch(变量){case变量值1://;break;case变量值2://...;
Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使
switch语句结构switch(表达式){case判断值1;语句组1;break;case判断值2;语句组2;break;case判断值3;语句组3;brea