Swift2.0(8)分支循环

  • 分支语句

if语句的格式:

     if  条件 {}  else {}

     if  条件 {}  else if 条件 {}  else {}

     条件要求是一个Bool类型的值

     Swift要求{}中只有一条语句,{}也不能省略

switch语句的格式:

     switch 分支因子 {

     case 值1:

          响应1

     case 值2,

              值3:

               响应2和3

      ...

     default:

          其他处理

     }

     Swift中case语句不需要用break结尾

case可以支持:

     简单的字面值,如:

     var cardType = "大陆通行证"

     switch cardType {

     case "大陆通行证":

         print("请去1号柜台办理")

     case "*通行证":

         print("请去2号柜台办理")

     case "美国通行证","日本通行证":

         print("请去3号柜台办理")

     default:

         print("请去4号柜台办理")

     }

     元组,如:

     var stu = ("东大", 2014)

     switch stu {

     case ("东大", _):

         print("东北大学 2014")

     case ("沈师", _):

         print("沈阳师范大学 2013")

     case ("辽大", _):

         print("辽宁大学 2015")

     default:

         print("其他")

     }

     区间,如:

     var ascii:Int = 50

     switch ascii {

     case 48..<58:

         print("数字")

     case 65...90,97...122:

         print("字母")

     default:

         print("符号")

     }

     值绑定和条件值绑定,如:

     var pos = (110, 10)

     switch pos {

     case let (x, 20):

         print("坐标:(\(x),20)")

     case let (x, y) where x == y :

         print("坐标对角线:(\(x):\(y))")

     case let (x, y) where x<20 || x>100:

         print("不再中心位置:(\(x):\(y))")

     default:

         print("其他位置")

     }

     let (x, 20) 是“值绑定”

     let (x, y) where x ==y 是“条件绑定”

     “值绑定”还可以用于if语句


  • for循环

形式一:

     for 循环因子 in 集合 {}

     循环因子,不需要let和var这样的关键字

     集合包括:数组、字典、区间等

形式二:

     for 初始化因子; 条件; 自变运算 {}

     这里的因子必须是变量


  • while循环

形式一:

     while 条件 {}

形式二:

     do {} while 条件


  • continue

用法一:

     单独的continue

用法二:

     continue Label

     如:

     for1: for a in 1...5 {

         for2: for b in 1...10 {

             if a == b {

                 continue for1

             }

             print("a=\(a) b=\(b)")

         }

     }

  • break

用法一:

     单独使用break

用法二:

     break Label

     for1: for a in 1...5 {

         for2: for b in 1...10 {

             if 3*a == b {

                 break for1

             }

             print("a=\(a) b=\(b)")

         }

     }

用法三:

     switch的case中,作为空行占位

     var pos = (110, 10)

     switch pos {

     case let (x, 20):

         print("坐标:(\(x),20)")

     case let (x, y) where x == y :

         print("坐标对角线:(\(x):\(y))")

     case let (x, y) where x<20 || x>100:

         break

     default:

         break

     }

  • fallthrogh

     用于实现C语言中,case后面没有break的情况

     var pos = (110, 10)

     switch pos {

     case let (x, 20):

         print("坐标:(\(x),20)")

     case let (x, y) where x == y :

         print("坐标对角线:(\(x):\(y))")

     case let (x, y) where x<20 || x>100:

         print("不再中心位置:(\(x):\(y))")

         fallthrough

     default:

         print("其他位置")

     }