Swift学习记录 -- 3. 逻辑分支语句(if , else if ,三目运算 ,guard)

这篇博客介绍了Swift中的逻辑分支语句,包括if、else if的使用,并特别提到了在Swift中新增的guard关键字,以及Switch语句的增强。虽然Swift的逻辑分支与OC有相似之处,但guard和Switch的特性使得Swift在这些方面更为强大。

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

Swift 中 if , else if ,三目运算相较OC来说 , 除了更加精简 , 几乎没有变化 . 只是Swift中新增了 guard判断 , Switch得到大力加强. Switch留到下篇文章进行讲解

       // if用法
       // 1. if后面 ()可以省略 , 加上也没错 , 为了精简尽量省略
       // 2. 判断句不再有非0即真,判断句必须有明确的真假(BOOL-->true/false),比OC更加严谨
        let a = 10
        if a > 0 {

            print("a大于0")
        }else{

            print("a小于或等于0")
        }
        //else if用法

        let score = 92
        if score >= 90 {

            print("非常优秀")
        }else if score >= 80 {

            print("优秀")
        }else if score >= 70 {

            print("良好")
        }else if score >= 60 {

            print("及格")
        }else {

            print("不及格")
        }
        //三目运算

        let m = 5
        let n = 3
        var result = 0
        m > n ? (result = m) : (result = n)
        result = m > n ? m : n
        //guard (OC中无) 
        //和if非常相似 , 目的为提高程序可读性

        /*
        guard 判断条件  else {

         不满足条件执行语句

         return / continue / break /throw
 }
         满足条件执行语句
       */

        //场景1 :
        goToNetbar(20)
        alsoGoToNetbar(15)

        //如果仅仅是这样 , 程序的可读性其实用if语句还更好一些 , 然而如果是多次嵌套判断 ,guard的优势就相当明显 . 比如以下场景 , 一个人去一个收费的公共厕所 , 厕所分男女 , 而且要收费 , 这里我们需要判断一个男子能不能上厕所 .

        //场景2 : (嵌套)
        //此处只设置了一层嵌套 , 在实际开发中也许我们会遇到多层嵌套 , 这里就不演示了 
        goToWashroom(0, money: 0.1)
        alsoGoToWashroom(1, money: 1.0)
// if语句 : 去上网
func goToNetbar(age : Int) {

    if age > 18 {
        print("满足条件,可以上网")
    }else {
        print("不能上网")
    }
}

// 这里简单介绍一下Swift中函数的写法 func + 函数名 + 参数 + 返回值 , 更详细说明后面会讲到
// guard语句 : 去上网
func alsoGoToNetbar(age : Int) -> Void {

    guard age > 18 else {

        print("不能上网")
        return  //如果涉及到循环等会用到continue , break等
    }
    print("满足条件,可以上网")
}


// if语句判断 , 此处只是多加了一层判断 , 如果再多几层判断 , 那么可读性就会非常的差了
func goToWashroom(sex : Int , money : Double) -> Void {

    if sex == 1  {

        if money > 0.5 {

            print("可以上厕所")
        }else{

            print("去付钱")
            return
        }
    }else{

        print("去女厕所")
        return
    }
}

// 如果用 guard 进行判断, 即使有更多的条件判断 , 可读性依然良好 , 这也是OC中没有的
func alsoGoToWashroom(sex : Int , money : Double) -> Void {

    guard sex == 1 else {

        print("去女厕所")
        return
    }
    guard money > 0.5 else {

        print("去付钱")
        return
    }

    print("可以上厕所")

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值