美文网首页
iOS-Swift-流程控制

iOS-Swift-流程控制

作者: Imkata | 来源:发表于2020-01-02 14:55 被阅读0次

    一. 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循环我们使用区间运算符。

    1. 区间

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

    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-流程控制

          本文链接:https://www.haomeiwen.com/subject/ejonoctx.html