Swift学习笔记-条件判断

圆括号

在条件判断以及循环中,大多数圆括号都可以省略掉

var x=2
var y=3

if x>3{
    //
}

switch x {
case 1:
    y=1
default:
    y=2
}

while x>3
{
    
}

print(y)

if语句

Swift中的if语句和C/C++一样,只不过多了两个比较运算符

  • ===,计算两个实例是否指向同一个引用
  • !==,计算两个实例是否不指向同一个引用

switch语句

  • Swift中的switch语句和C/C++很像,不过每个分支都要求有代码,不然会报错
    var x=2
    
    switch x {
    case 1:
        //做出响应
        print("Item1")
    case 2:
        //做出响应
        print("Item2")
    default:
        //没有匹配时的默认操作
        print("Default Item")
    }
  • 在C/C++中,分支中的代码执行完后,会自动跳转到下一个分支继续检查,但是在Swift中恰恰相反,分支中的代码执行完后会跳出switch代码块,想要分支执行完后跳转到下一个分支,可以在分支代码最后加上fallthrough
    var x=2
    
    switch x {
    case 1:
        print("Item1")
    case 2:
        print("Item2")
        //继续向下执行
        fallthrough
    default:
        print("Default Item")
    }
  • switch分支可以同时匹配多个值,用逗号分隔
    var x=2
    
    switch x {
    case 1:
        print("Item1")
    case 2,3,4:
        print("Item2 Item3 Item4")
        fallthrough
    default:
        print("Default Item")
    }
  • switch也支持使用valueX...valueY的形式匹配一个闭区间中的值
    var x=6
    
    switch x {
    case 1:
        print("Item1")
    case 2...10:
        print("Item2到Item10")
        fallthrough
    default:
        print("Default Item")
    }
  • 在case语句后面可以声明变量/常量的方式进行值绑定,如下代码所示,当x不为1,也不为2的时候,会将x的值赋给常量y,然后输出Item is 6,并且default分支永远也不会被执行到
    var x=6
    
    switch x {
    case 1:
        print("Item1")
    case 2:
        print("Item2")
    case let y:
        print("Item is \(y)")
    default:
        print("Default Item")
    }
  • 上面的代码看上去没什么用,但是如果加上where语句就变的有用起来了,where能让你做一些额外检查,只有满足条件才会匹配这个分支并进行值绑定
    var x=6
    
    switch x {
    case 1:
        print("Item1")
    case 2:
        print("Item2")
    case let y where x>1 && x<7:
        print("Item is \(y)")
    default:
        print("Default Item")
    }
  • 元组是两个或多个值的组合,该组合是一个有序列表,可以用索引方式访问元组内元素
    let error=(404,"Not Found","xy")
    //404
    print(error.0)
    //Not Found
    print(error.1)
    //xy
    print(error.2)
  • 也可以通过给元组内的元素命名后以名字访问
    let error=(code:404,errorStr:"Not Found",owner:"xy")
    //404
    print(error.code)
    //Not Found
    print(error.errorStr)
    //xy
    print(error.owner)
  • switch语句也支持元组的形式匹配,其中_为通配符
    var error=(code:404,errorStr:"Not Found",owner:"xy")
    switch error{
    case (404,_,"xy"):
        print("404 error")
    default:
        print("unknow error")
    }
  • if-case语句,有时候条件判断只有一种情况,但是又想利用switch的便捷性(例如区间判断),又不想写多余的default语句,那么可以使用if-case语句
    var x=6
    if case 2...10=x,x<7{
        print("x is in 2..10,and x<7")
    }

猜你喜欢

转载自www.cnblogs.com/Potato-Eater/p/9788855.html
今日推荐