11.swift中的switch结构

区别一:

oc中switch条件只可以放整数

swift中switch条件可以放几乎任何数据类型

区别二:

oc中每一个case中应有break,如果没有break,则会继续向下贯穿执行case直到碰见break跳出switch结构

swift中不需要在case分支最后添加break语句,该case分支执行完成后,会跳出switch结构

区别三:

oc中不是每个case后面必须有可执行语句,如果某个case分支中没有可执行语句和break,则该分支将会执行其下面最近的一个有可执行语句的分支中代码,以此实现多条件匹配

swift中每个case后面必须都有可执行语句,

ps:此区别是因为区别二的存在,swift中表示多条件匹配的情况使用的语法为,case后跟多个条件,用逗号隔开。

此外,swift的case中可以填写一个范围作为匹配条件,如case a...b:

区别三:

oc中switch中default不是必需的

swift中switch中default是必需的

swift中switch语句可以使用where来增加判断条件

如:

var point = (10,-10)

switch point{

  case let(x,y) where x == y :

//

case let(x,y) where x == -y :

//

default :

    //

}

swift中switch语句可以使用fallthrough关键字来执行贯穿操作,即执行完当前case后,会接着执行fallthrough后面的case活着default语句,类似于oc中case没有写break语句,但是使用了fallthrough,其后面的case条件中将不能定义常量或变量,即fallthrough后面的case条件不能使用类似上面代码中let (x,y) 这样的变量来接收point,否则会有语法错误。

最新文章

  1. js---OOP浅谈
  2. react native 常用第三方库
  3. akka各模块
  4. hello world 驱动程序编写
  5. 转:python webdriver API 之简单对象的定位
  6. POI导入
  7. jquery的ajax和原始的ajax这两种方式的使用方法
  8. Frameset布局
  9. Java坑一
  10. IIS上不能播放mp4
  11. cocos2d-x 那些常犯的错误
  12. fedora安装各种应用软件
  13. 关于Trie KMP AC自动机
  14. Windbg调试中遇到的问题
  15. 201521123090 《Java程序设计》第4周学习总结
  16. 远程连接MySQL,防火墙阻止访问,解决方法
  17. JasperReport报表开发(一)--原理介绍
  18. CF698C. LRU [容斥原理 概率]
  19. WangEditor+thinkphp5【真实可用+原创】
  20. Golang入门教程(十七)Linux/Windows下快速搭建和配置NSQ

热门文章

  1. Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程
  2. C 数据结构1——线性表分析(顺序存储、链式存储)
  3. 判断html中的滚动条
  4. if
  5. VPS选购及辨别vps虚拟化技术
  6. 【python自动化第十篇:】
  7. IOS tableView 自定义cell 多行时 文字重复现象
  8. Delphi 根据快捷方式路径取源文件地址
  9. 总结swift语言常见的20个问题和回答
  10. dubbo使用方法