Swift(二)控制流

要处理条件逻辑,使用 if 和 switch ,要处理循环逻辑,使用 for-in, for, while, 和 do-while 。包着条件或者循环的括号可加可不加。处理逻辑体的花括弧是必须加的。
 

注意

以上代码,temaScore自己占了一行代码。这是在playground里看变量值的简单方法。

 

在if语句里,条件必须是一个Boolean表达式——意思是像 if score { … } 这种写法是错的,因为不能隐式地转换为0值。

你可以把 if 和 let 一起使用来处理可能不明确的值。这些值表示为可选值。可选值要么包含一个值,要么包含 nil ,表明这个值是不明确的。在值的类型后加上问号 (?) 来标记这个值是可选的。



试一试

将 optionalName 改为 nil。 greeting 是什么值? 再加一个 else 
语句,如果 optionalName 是 nil ,将 greeting 设置一个不同的值。

 

如果可选值是 nil ,条件就为false,花括弧里的代码就会被跳过。否则,可选值被开启(unwrapped,博主注:这里的unwrapped实在不知道该如何翻译更好,这个词的原意为打开、展开,直接翻译过来感觉怪怪的,暂时称之为开启吧,貌似有的文章翻译为解析)并赋给 let 后面的常量,这个常量就可以使的开启值用在代码块里了。

switch支持任何种类的数据和大量的比较操作——可并不是只限于整型和测试是否相等。

试一试

试试把default那一部分去掉。看看会有什么错误?

 

注意看一下 let 是怎么用来将匹配模式部分的值赋给常量的。

匹配switch case 的代码执行完以后,程序从switch语句跳出。不会执行下一个case,所以没有必要在每个case结束部分代码处显示的跳出switch。

通过提供一组用于各个键值对的名称,用 for-in 来遍历字典。字典是无序集合,所以它们的键和值通过字母表顺序来进行遍历。

试一试

增加一个变量来追踪哪种数是最大的,还有这个最大的数是多少

 

用 while 来重复执行一段代码直到条件改变。循环的条件也可以放到最后,以保证循环至少执行一次。




你可以在循环里维持一个索引——要么使用 ..< 创建一套索引或者要么写一个显示的初始化、条件和递进。这两种循环是一样的:


用 ..< 创建的索引忽略最大值,用 … 创建的索引包含最大值。
posted @ 2015-05-12 08:47  Running2Snail  阅读(746)  评论(2编辑  收藏  举报