iOS-Swift-流程控制

一. if

if后面的条件可以省略小括号,条件后面的大括号不可以省略。

可以省略小括号

if后面的条件只能是Bool类型。

只能是Bool类型

二. while

while
repeat-while

repeat-while相当于C语言中的do-while。
这里不用num--,是因为从Swift3开始,去除了自增(++)、自减(--)运算符。苹果感觉⾃增、自减运算符不好,所以现在我们使⽤num+= 1,或者 num-= 1。

++是⾃增运算符,粗略的看 i++和 i= i+1是⼀个意思,但区别在于 i++ 是先使⽤i的值 然后再使 i+1 ⽽ i = i+1 只是简单的给 i 加1,⽐如 i = 2 ;j = i ++ 执⾏过后 j = 2,i 再加1,最后 i= 3 。
i= i+1 和 i +=1 是⼀样的,完全相同。

三. for

在OC中我们使用三段式for循环,在Swift中我们使用for in区间运算符。

1. 区间

  • 闭区间运算符:a...b, a <= 取值 <= b
闭区间运算符
  • 半开区间运算符:a..
半开区间运算符
  • 单侧区间:让区间朝一个方向尽可能的远
单侧区间
  • 区间运算符用在数组上
数组

2. 区间类型

区间类型

字符、字符串也能使用区间运算符,但默认不能用在for-in中,如下:

字符串使用区间

3. 带间隔的区间值

带间隔的区间值

四. switch

switch

case,default后面不能写大括号(OC中是可写可不写)。
默认可以不写break,不会贯穿到后面的条件。

使用fallthrough可以实现贯穿效果,如下:

fallthrough
  • switch注意点

switch必须要保证能处理所有情况:

要处理所有情况

case、default后面至少要有一条语句,如果不想做任何事,加个break即可。

break

如果能保证已处理所有情况,也可以不必使用default:

保证处理所有情况
  • 复合条件

switch也支持Character、String类型

Character、String

如上,使用fallthrough可以达到复合条件的效果,另外条件之间使用逗号分隔也可以实现复合条件。

  • 区间匹配、元组匹配
区间匹配、元组匹配

可以使用下划线 _ 忽略某个值。

关于case匹配问题,属于模式匹配(Pattern Matching)的范畴,以后会再次详细展开讲解(重载~=运算符,来⾃定义匹配规则)。

  • 值绑定
值绑定

必要时let也可以改为var。

  • where

where不但可以用在switch中,也可以用在for循环中。

where
  • 给循环添加标签
给循环添加标签

在内循环内部使用外循环标签,可以达到内循环控制外循环的目的。

你可能感兴趣的:(iOS-Swift-流程控制)