博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Swift学习】Swift编程之旅---控制流(九)
阅读量:6547 次
发布时间:2019-06-24

本文共 1691 字,大约阅读时间需要 5 分钟。

  Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continue语句。

除了C里面传统的 for 条件递增循环,Swift 还增加了 for-in 循环,用来更简单地遍历数组(array),字典(dictionary),范围(range),字符串(string)和其他序列类型。
Swift 的 switch 语句比 C 语言中更加强大。在 C 语言中,如果某个 case 不小心漏写了 break,这个 case 就会“掉入”下一个 case,Swift 无需写 break,所以不会发生这种“掉入”的情况。Case 还可以匹配更多的类型模式,包括范围(range)匹配,元组(tuple)和特定类型的描述。switch case 语句中匹配的值可以是由 case 体内部临时的常量或者变量决定,也可以由 where 分句描述更复杂的匹配条件。
 
  
For-In循环
   它可以遍历数字范围,数组元素,字符串的字符。
  遍历范围
for index in 1...5 {    print("\(index) times 5 is \(index * 5)")}// 1 times 5 is 5// 2 times 5 is 10// 3 times 5 is 15// 4 times 5 is 20// 5 times 5 is 25

 

  遍历数组

let names = ["Anna", "Alex", "Brian", "Jack"]for name in names {    print("Hello, \(name)!")}// Hello, Anna!// Hello, Alex!// Hello, Brian!// Hello, Jack!

 

  遍历字典

let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]for (animalName, legCount) in numberOfLegs {    print("\(animalName)s have \(legCount) legs")}// ants have 6 legs// cats have 4 legs// spiders have 8 legs

 

 

  While循环

  While 循环运行一系列语句直到条件变成 false。这类循环适合使用在第一次迭代前迭代次数未知的情况下。swift提供2种while循环(while,repeat-while)。

 

  while

  普通while循环,在迭代前检查条件是否为true,是才会进行迭代

  

 

  repeat-while

  它和 while 的区别是在判断循环条件之前,先执行一次循环的代码块,然后重复循环直到条件为 false。

 

  条件语句

  if语句

  和c一样这里不做介绍

 

  switch语句

  switch语句会尝试把某个值与若干个模式(pattern)进行匹配。根据第一个匹配成功的模式,switch语句会执行对应的代码。当有可能的情况较多时,通常用switch语句替换if语句。

switch语句都由多个case构成。为了匹配某些更特定的值,Swift 提供了几种更复杂的匹配模式switch语句必须是完备的。这就是说,每一个可能的值都必须至少有一个case块与之对应。在某些不可能涵盖所有值的情况下,你可以使用默认(default)块满足该要求,这个默认块必须在switch语句的最后面。与C语言和Objective-C中的switch语句不同,在 Swift 中,当匹配的case块中的代码执行完毕后,程序会终止switch语句,而不会继续执行下一个case块。这也就是说,不需要在case块中显式地使用break语句。这使得switch语句更安全、更易用,也避免了因忘记写break语句而产生的错误。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:http://asrdo.baihongyu.com/

你可能感兴趣的文章
C语言实现修改文本文件中的特定行
查看>>
【原】分享超实用工具给大家
查看>>
VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池
查看>>
jQuery中ajax的4种常用请求方式
查看>>
XCode4中的文本查找和文本替换功能
查看>>
HDU 1176 免费馅饼(数字三角形)
查看>>
Yeoman的好基友:Grunt
查看>>
hdu 4240在(最大流)
查看>>
2013豆瓣校园招聘研发类笔试题
查看>>
CentOS设置开机自动启动某服务
查看>>
DLNA_百度百科
查看>>
Kmeans算法原理极其opencv实现(转帖)
查看>>
Oracle 动态视图2 V$LOCKED_OBJECT
查看>>
杂谈---令人抓狂的数据库行级锁问题
查看>>
Android重写HorizontalScrollView仿ViewPager效果
查看>>
计算机中的颜色XIV——快速变换颜色的V分量
查看>>
我心中的核心组件(可插拔的AOP)~第十三回 实现AOP的拦截组件Unity.Interception...
查看>>
Vault 不同版本的API的异同
查看>>
老外还是喜欢Ubuntu的
查看>>
使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
查看>>