控制流

本文介绍了Swift编程中的控制流,包括For循环的三种用法:区间、遍历容器以及条件递增,并详细讲解了While循环的两种形式。此外,还提到了条件语句如if和Switch,以及控制循环的关键字break和continue。参考了《The Swift Programming Language》官方文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

For循环

1、区间

(1...5)闭区间1-5,包括1和5
 (1..<5)  半开区间,包括1,不包括5
 for index in 1…5  index为常量  ,如果不需要知道index的值,可以用下划线“_”代替变量名
 目前发现使用for in只能实现递增效果,不能递减

2、数组、字典、集合、字符串

        var array = ["a","b"]
        for value in array {
            println(value)
        }

        for (index,value) in enumerate(array) {
            println("\(index) = \(value)")
        }

        var dic = [1:"a",2:"b"]
        for (key,value) in dic {
            println("\(key) = \(value)")
        }

        var str = "abc" + "\u{1f432}"
        for c in str {
            println(c)
        }

3、for 条件递增与OC一样,只是声明变量时,要使用var关键字,因为变量需要改变

While 循环

while 条件 { …. } 开始判断条件
do { ….. } while 条件 结束判断条件

条件语句

1、 if
2、Switch

a、不存在隐式的贯穿(No Implicit Fallthrough),不需要在每个分支之后添加break关键字,每个分支执行完毕之后就会跳出,如果想继续向下执行,需要添加fallthrough关键字
b、区间匹配case 1…10: { … }判断该值是否在某一个范围内
c、元组 可以使用元组在同一个switch语句中测试多个值,元组中的元素可以是值,也可以是区间,也可以用下划线“_”来匹配所有可能的值
d、值绑定 只用于元组上 
    let point = (0,1)
        switch point {
            case (let x, 0) :
                println("(\(x),0)在x轴上")

            case (0, let y) :
                println("(0,\(y))在y轴上")

            case (let x, let y) :
                println("(\(x),\(y))没在x轴,也没在y轴上")
        }
e、where关键字    增加额外条件
    let point = (1,1)
        switch point {
            case (let x, 0) :
                println("(\(x),0)在x轴上")

            case (0, let y) :
                println("(0,\(y))在y轴上")

            case (let x, let y) where x == y:
                println("(\(x),\(y))没在x轴,也没在y轴上")
        }

其他关键字 break continue

 1、break :立刻中断该循环体执行,然后跳转道表示循环体结束的大括号后的第一行代码
 2、continue :立刻停止本次循环体执行,重新开始下次循环迭代
 3、fallthrough :在switch中每一个分支结束后可以使用,执行下一个分支
 4、标签(Labeled Statements)在循环体中使用,标记当前循环体
oneLoop: for a in 0...4 {                       //oneLoop标签名,标记当前for循环
    println("a====================\(a)")
    twoLoop : for b in 1...3 {                  //twoLoop标记当前for循环
         if a == 2 {
            break twoLoop                       //停止twoLoop标记的循环体
         }
         println("b======\(b)")
    }
}

引用:《The Swift Programming Language》
如有问题欢迎指正,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值