美文网首页程序员
Swift笔记<二>逻辑分支及循环体

Swift笔记<二>逻辑分支及循环体

作者: 大基本功 | 来源:发表于2017-12-12 19:47 被阅读39次
    1.if
    • OC
      • 后面条件必须加()
      • 后面提条件非0即真
      • 如果只有一条if后面的大括号可省略
      if(a>0)NSlog(@"yes");
      
    • Swift
      • if 后面不加括号
      • if 后面条件必须是明确的Bool类型
      • 即使只有一条指令if后面的大括号亦不可省略
    • if else 的使用与OC一致,只是条件语句后不加括号;三目运算符和OC基本一致;
    2.guard
    • guard 是swift2.0 新增语法
    • 与if语句非常类似,设计目的是提高程序的可读性
    • guard语句必须带有else语句,语法如下
      • 当条件表达式为true时,跳过else语句中的内容,执行语句组内容
      • 当条件表达式为false时 ,执行else语句内容,跳转语句一般是return,break,continue,throw
       //如果一个成年人带了省份证才能上网
       func cherk(age:Int hasCard:Bool){
              if age >= 18{
                 if hasCard{
                 print("老板,开个机")
                 }else{
                 print("回家拿身份证")
                 }
             else{
                 print("未成年不能上网")
           }
       }
      
       func cherkGuard(age:Int hasCard:Bool){
              guard age >= 18 else {
              print("老板,开个机")
              return
              }
              guard hasCard else {
              print("回家拿省份证")
              return
              }
              print("未成年不能上网")
      }
      
    2.switch的基本使用
    • OC中
      • switch后面条件必须加()
      • case后面只能跟一个条件
      • case会有穿透效果
      • 可以不写default
      • default位置可以随便放
      • 在case中定义变量需加大括号,否则作用域会混乱
      • 不能判断对象或浮点类型,只能判断整数
    • Swift中
      • switch后面条件可以不加()
      • case后面能跟多个条件用逗号隔开
      • case不会有穿透效果 要穿透后面加fallthrough
      • 不可以不写default
      • default位置必须放最后
      • 在case中定义变量不需加大括号
      • 能判断对象或浮点类型,只能判断整数
    3.switch的特殊使用
    • 区间匹配
      • 区间概念:
        • 通常描述的是数字区间
        • 半开半闭区间
        • 闭区间
        let range = 0...10//闭区间代表区间0~10
        let range1 = 0..<10半开半闭区间代表区间0~9
        
      • 区间操作:
        • 交集:clamped
        • 是否重叠:overipas
        • 判断包含:contains
        • 是否为空:isEmpty
    • 元组匹配
      let point = (10,15)
      switch point{
           case (0,0)
           print("坐标在原点")
           case (1...10,1...10)//可在元祖中加上区间
           print("坐标X,Y在1...10之间")
           case (,0)//可在元祖中加上区间
           print("坐标X在X轴上")
           default 
           print("其它") 
       }
      
    • 值绑定
      let point = (10,15)
      switch point{
           case (var x,0)
           print("x=\(x)")//point中的x赋值给x
           case (10,var y)
          print("y=\(y)")//point中的y赋值给y
           case var(x,y)
           print("x=\(x) y=\(y)")//point中的xy赋值给xy
           default 
           print("其它")
      }
      
    • 根据条件绑定
      let point = (100,10)
      switch point{
           //只有where后面的条件语句表达式为真财赋值并执行case后面的语句
           case var( x,y) where x > y
           print("x=\(x) y=\(y)")
           default 
           print("其它")
      }
      
    3.for循环
    • 区间写法
       for _ in 0..<10{ //_代表忽略的意思
        print("xxx") 
       }
      
    4.while循环与do while循环
    • while 循环
      var i =10
      while i > 0{
      i-=1;
      print (i)
      }
      
    • do while 循环
    repeat {//swift 中不用do ,do在swift有特殊含义,用于捕捉异常
       i +=1
       print(i)
    }while i < 10
    

    相关文章

      网友评论

        本文标题:Swift笔记<二>逻辑分支及循环体

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