第二节 流程控制

本文来自于疯子们的开源图书

使用ifswitch实现条件判断的功能,使用for-in,for,whiledo-while实现循环的功能条件表达式或循环变量外面的括号是可选的。包住语句体的大括号不能省略。

第二节 流程控制_第1张图片

 

在一个if语句里,条件必须是一个布尔表达式----这就意味着类似于if score{...}的代码是错误的,而不是隐含的和0进行比较的。

 

你可以使用if和let一起来作用于一个值,这个值可能会消失。这些值被表示为可选的。一个可选值或者包含一个值或者是nil来说明这个值已经消失。在一个变量的类型之后添加一个?来标记这个值是可选的。

第二节 流程控制_第2张图片

 

EXPERIMENT

 

改变optionalName值为空,你得到的greeting的值是什么?如果optionalName是空的添加一个else从句来设置不同的greeting值。

 

如果可选的值是nil,条件是false,那么在大括号里面的代码将会跳过。否则,可选值会解包并且赋值给let后的常量,这个常量使得在代码的语句块里的解包值是可用的。

Switches支持任意类型的数据和广泛的比较操作。它们不仅仅是局限于整型和相等性测试。

第二节 流程控制_第3张图片

 

实验:试着移除default语句,你会得到什么错误?

 

在执行完和switch条件匹配的代码之后,程序会从switch语句里面退出。不会再执行下一个case语句,所以没有必要显式的在每条case语句后加上跳出switch语句的代码。

你可以在for-in 中使用一对变量来遍历字典中的键值对。

第二节 流程控制_第4张图片

 

实验:添加其他的变量来找出哪一个数式最大的,最大的数是什么。

 

使用while语句来重复的执行代码块直到条件改变为止。循环条件也可以放在最后面,确保循环至少执行一次。

第二节 流程控制_第5张图片

你可以在循环中使用一个索引,要么使用..来声明一下索引的范围,要么明确的指定初始值,条件和增量。下面的两个循环实现了相同的功能。

第二节 流程控制_第6张图片

 

使用..指定的范围不包括上限值,使用...指定的范围包括两端的值。

你可能感兴趣的:(swift)