美文网首页
swift-逻辑控制

swift-逻辑控制

作者: 雷晏 | 来源:发表于2016-09-14 15:26 被阅读20次

    for循环结构

    for i in -99...99{

           i*i

    }

    注:基于c的for循环结构在swift3.0已经取消。

    for var a = -6.28 ; a <= 6.28 ; a += 0.1{ 

       sin(a)

    }


    接下来我会通过掷骰子游戏来说明下面的循环结构的不同以及用法

    while循环结构

    在while循环条件,可以直接跟一个或多个条件,当满足a赢得次数以及b赢得次数小于3,那么就一直执行while循环


    repeat while循环结构

    至少执行一次的循环结构,跟do while类似。

    我们来优化下这个掷骰子游戏,只要a>b或b>a那么就结束游戏,所以,我们可以采取repeat while来处理,因为这个游戏至少得去玩一盘,只要是平局就继续执行循环。


    break和continue

    break 立即结束当前循环

    continue 结束当前循环的内容,直接执行下一次循环

    这里利用了一个死循环,让循环内容无限去执行,通过break和continue来控制循环是否终止。

    假如平局,那么就立马跳出当前循环,不再去执行下面的代码了;不是平局,那么就直接break结束循环,输出结果。


    控制转移

    通过一个列子来说明

    求x^4 - y^2 = 15 * x * y在300以内的一个正整数解

    思路:通过循环嵌套取x,y在300的值,如果满足公式就打印并结束循环。

    第二种做法,在swift中可以将一个循环结构用一个名字来代表。


    选择结构

    可以利用 if .. else if ... else if .. else ..的形式来处理多个选择

    可以用switch来处理。

    在swift中,用switch来进行选择结构,每句case后不用跟break

    在最后一句default:可以采用break或者()来表示什么都没做

    switch的一些用法

    1.在case条件语句可以用..<或...区间形式

    2.也可以采用元组的形式进行条件语句判断

    3.在采取元祖形式进行条件语句判断的时候,可以利用下划线的形式单独判断元组其中一个,也可以利用区间来判断元组元素是否在这个区间

    4.在元组形式进行条件语句判断,也可以通过元组解包的形式赋值一个新元组来处理

    fallthrough关键字用于告诉case执行完毕后跳入下一个case


    guard关键字

    举列说明:我去买一样东西,如果我带的钱大于东西价格并且我能装的容量大于了东西容量,那么就可以买,反之不能买。

    普通方法处理:

    用普通方法处理,有2个嵌套判断,假如今后的业务逻辑更加复杂,那么代码易读性就大大降低。

    为此,swift推出了guard关键字,guard else 确保一个条件为真,这样我们就不用去把跟业务逻辑不相干的还要写在一起,显得混乱。

    很清晰看的出,采取guard else后,代码条理非常清晰,更加易读。


    where用法和模式匹配

    通过where关键字来附加限制条件

    列1:给出一个点,这个点可能x,y相等,可能x等于-y

    列2:给出一个年龄,10到19为青少年

    普通做法:

    这样做发现代码冗长,不够简练。

    简练做法:

    通过if case方法就能直接判断一个区间形式了

    列3:根据列3附加一个条件限制,大于18的才是青年

    同理,采取where来附加限制条件

    元组也可以这样操作。

    列4:取出1到100之间能被3整除的数

    利用let case ,where的形式,我们可以写出非常漂亮的代码

    总结:合理通过利用swift各个关键字以及写法,可以实现代码简洁化,易读化,提升了代码质量。

    相关文章

      网友评论

          本文标题:swift-逻辑控制

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