《Swift开发实战》——第2章,第2.3节流程控制
本节书摘来自异步社区《Swift开发实战》一书中的第2章,第2.3节流程控制,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.3 流程控制
在本章前面的实例2-1程序中,下面这些都是实现流程控制工作的实现代码。
switch("abc") case "123": println("123"); case "456","abc": println("123 abc "); default: println("没有找到合适的匹配"); var i:Int = 0; while( i 10) i++; println(i); i--; println(i); }while(i for index in 1...5 println("index=\(index)"); }
在Swift语言中,使用关键字if和switch来进行条件判断操作,使用for-in、for、while和do-while来进行循环操作。在Swift程序中,可以省略包含条件和循环变量括号,但是必须保留语句体中的大括号。例如,下面所示的演示代码。
let individualScores = [75, 43, 103, 87, 12] var teamScore = 0 for score in individualScores { if score 50 { teamScore += 3 } else { teamScore += 1 teamScore
在if语句中,条件必须是一个布尔表达式——这意味着像if score { ... }这样的代码将报错,而不会隐式地与 0 做对比。
在Swift语言中,有些变量的值是可选的,一个可选的值可能是一个具体的值或者是nil(此时表示值缺失)。在Swift程序中,可以联合使用if和let来处理值缺失的情况,具体方法是在类型后面加一个问号“?”来标记这个变量的值是可选的。参见如下所示的演示代码。
var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }
在Swift语言中,如果变量的可选值是nil,条件会判断为false,大括号中的代码会被跳过。如果不是nil,则会将值赋给let后面的常量,这样在代码块中就可以使用这个值了。
在Swift语言中,关键字switch可以支持任意类型的数据以及各种比较操作,而不仅仅是整数以及测试相等。例如,如下所示的演示代码。
let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log." case "cucumber", "watercress": let vegetableComment = "That would make a good tea sandwich." case let x where x.hasSuffix("pepper"): let vegetableComment = "Is it a spicy \(x)?" default: let vegetableComment = "Everything tastes good in soup." }
在Swift语言中,运行switch中匹配到的子句之后,程序会退出switch语句,不会继续向下运行,所以不需要在每个子句结尾写break。
在Swift语言中,可以使用for-in来遍历字典,需要两个变量来表示每个键值对。参见如下所示的演示代码。
let interestingNumbers = [ "Prime": [2, 3, 5, 7, 11, 13], "Fibonacci": [1, 1, 2, 3, 5, 8], "Square": [1, 4, 9, 16, 25], var largest = 0 for (kind, numbers) in interestingNumbers { for number in numbers { if number largest { largest = number largest
在Swift语言中,可以使用while来重复运行一段代码直到不满足条件为止,循环条件可以在开头也可以在结尾。例如,如下所示的演示代码。
var n = 2 while n 100 { n = n * 2 var m = 2 m = m * 2 } while m 100 m
在Swift语言中,可以在循环中使用“..”字符来表示范围,也可以使用传统的写法来实现,这两种方式是完全等价的。例如,如下所示的演示代码。
var firstForLoop = 0 for i in 0..3 { firstForLoop += i firstForLoop var secondForLoop = 0 for var i = 0; i ++i { secondForLoop += 1 secondForLoop
《Swift iOS应用开发实战》——导读 随着Swift语言的到来,这种简单、好用又安全的编程语言将吸引更多的开发者加入,让苹果软件生态圈更加繁荣。如此,“果粉”将可以在App Store和Mac Store中下载到更多称心如意的App。从某种意义上说,Swift语言是苹果的一项新的商业战略。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- java:输出流程printStream
- Dart基础-控制流程与异常处理
- 小白学 Python(7):基础流程控制(上)
- [Gin] 单文件极简 HTTP Server 流程分析 ( gin-gonic/gin )
- Atitit.有分区情况下的表查询策略流程
- android 11系统 内部存储自动生成根目录文件夹流程
- Database之SQL:SQL语句操作三类(数据定义语句DDL/数据操作语句DML/数据控制语句DCL/其他基本语句、流程控制语句、批处理语句)概念及其代码实现案例之详细攻略
- 【面试2】Springboot启动流程分析原理(二)
- MediaCodec硬解流程
- 一文梳理2048小游戏从开发到上云全流程
- 【Linux 内核 内存管理】伙伴分配器 ② ( 伙伴分配器分配内存流程 )
- C语言 第四章 关系、逻辑运算与分支流程控制
- java新手练习 流程控制break 标签
- 008-Shell 流程控制
- Go语言自学系列 | go语言中的流程控制
- 简搭(jabdp)之自定义流程(三)
- 第19讲:MySQL常用的几种流程控制函数以及基本使用
- 汇编语言入门五:流程控制(一)
- Shell 流程控制
- 【Java语法基础】Java编译环境配置、基本语法、流程控制
- 【偷偷卷死小伙伴Pytorch20天】-【day3】-【文本数据建模流程范例】
- Helm3模板-控制流程
- 初始计算机安装安全系统标准化流程SOP文档
- 【UiPath2022+C#】UiPath 练习和解决方案-变量、数据类型和控制流程