swift语法记录-之流程控制

2020-04-13  本文已影响0人  LiuffSunny

if-else

image.png
如图所示:
***if后面条件的小括号可以省略
if后面大括号不可以省略
image.png
在以前的OC中,if非0是可以这样写的,但是swift后面if条件只能是bool类型

while

image.png
var age = 10
age++// 这样写在swift中会报错
++age  + ++age //这样的代码在不同的编译器里面会有不同的结果,所以在swift3.0 之后不再支持此类运算符

for

image.png
_代表忽略i的值

for-区间运算符应用在数组上

image.png
单测区间:省略的一方的限制在于数组的最大索引或最小索引,例如:names最大是3,第一个for循环就是2到3,第二个是0到2
image.png
如果区间运算符不受数组的限制,range就是负无穷到5使用contains方法可以验证是否包含

区间类型

image.png

注意点:

let str = "a"//默认是string类型
let c : Charactor = "a"//这样才是字符类型

所以在图中,stringRange2默认是string类型

image.png

带区间的间隔值

image.png stride函数的使用,如果hours = 10,10也是会被遍历出来,( 默认是闭区间)

switch

image.png
相当于每个case后面默认写了break,如果想要贯穿就要加fallthrough

fallthtrough

image.png

switch注意点

image.png
deefault后面必须加break,加分号也会报错.
image.png
枚举的取值范围是确定的,因此可以不加default

复合条件

也就是两个条件执行一样的代码
1.fallthrough 2. case后面用逗号分隔

image.png

区间匹配,元祖匹配

image.png

值绑定

image.png
值绑定只要求有一个匹配,0是可以匹配的,let x就是将2传进去

where

image.png
这里的where是判断num是否符合条件决定要不要进大括号里面的,相当于continue而不是break.

标签语句

给for循环打上一个标签,内层循环想跳出,可以直接使用标签

outer : for i in 1...4 {
    for k in 1...4 {
        if k == 3 {
            continue outer
        }
        if i == 3 {
            break outer
        }
        print("i == \(i)","k == \(k)")
    }
}
打印结果:
i == 1 k == 1
i == 1 k == 2
i == 2 k == 1
i == 2 k == 2
上一篇下一篇

猜你喜欢

热点阅读