在 Swift 中的 switch 语句,只要第一个匹配 case 就执行完毕, 而不再通过最后的 case ,不像在 C 和 C++ 编程语言。 看看以下的对比,以下是 C 和 C++ 中的 switch 语句的通用语法:
switch(expression){ case constant-expression : statement(s); break; /* optional */ case constant-expression : statement(s); break; /* optional */ /* you can have any number of case statements */ default : /* Optional */ statement(s); }
在这里,我们需要使用 break 语句从一个 case 语句中退出,否则执行控制都将转到下面提供匹配 case 语句后面的 case 语句。
语法
以下是 Swift 的 switch 语句的通用语法:
switch expression { case expression1 : statement(s) fallthrough /* optional */ case expression2, expression3 : statement(s) fallthrough /* optional */ default : /* Optional */ statement(s); }
如果不使用 fallthrough 语句,那么程序会在 switch 语句执行匹配 case 语句后出来。我们将采取以下两个例子,以使其明确功能。
示例 1
以下是 Swift 编程 switch 语句中不使用 fallthrough 一个例子:
import Cocoa var index = 10 switch index { case 100 : println( "Value of index is 100") case 10,15 : println( "Value of index is either 10 or 15") case 5 : println( "Value of index is 5") default : println( "default case") }
当上述代码被编译和执行时,它产生了以下结果:
Value of index is either 10 or 15
示例 2
以下是 Swift 编程 switch 语句中使用 fallthrough 的例子:
import Cocoa var index = 10 switch index { case 100 : println( "Value of index is 100") fallthrough case 10,15 : println( "Value of index is either 10 or 15") fallthrough case 5 : println( "Value of index is 5") default : println( "default case") }
当上述代码被编译和执行时,它产生了以下结果:
Value of index is either 10 or 15 Value of index is 5
易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 。
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。
- Java技术群: 227270512 (人数:2000,免费:否)
- Go开发者群(新): 851549018 (人数:1000,免费)
- PHP开发者群: 460153241 (人数:2000,免费)
- MySQL/SQL群: 418407075 (人数:2000,免费:否)
- 大数据开发群: 655154550 (人数:2000,免费:否)
- Python技术群: 287904175 (人数:2000,免费:否)
- 人工智能深度学习: 456236082 (人数:2000,免费:否)
- 测试工程师群: 415553199 (人数:2000,免费:否)
- 前端开发者群: 410430016 (人数:2000,免费:否)
- C/C++技术群(新): 629264796 (人数:2000,免费)
- Node.js技术群(新): 621549808 (人数:2000,免费)
- PostgreSQL数据库群: 539504187 (人数:1000,免费)
- Linux运维技术群: 479429477 (人数:2000,免费:否)
- Oracle数据库: 175248146 (人数:2000,免费:否)
- C#/ASP.Net开发者: 579821706 (人数:2000,免费)
- 数据分析师群: 397883996 (人数:2000,免费:否)