(三)swift支持的流程结构

一、swift支持的流程结构

1、循环结构

  for、for-in、while、do-while

2、选择结构

  if、switch

3、跟C语言对比

  用法基本一样 for、while、do-while、if

  只需关注for-in和switch

二、for-in和范围运算符

1、for i in 1...3{
     print(i)
  }
  //按顺序从范围中取值赋值给i,每取一次值,就执行一次循环体

2、如果需要用到范围的值,可以使用下划线_进行忽略,节省内存

三、switch

1、格式

   let grade = "B"

     switch(grade){

       case "A":
    
        print("优秀生")

       case "B":

        print("中等生")

       case "C":

        print("及格生")

       default:

        print("未知")

      }

2、switch语句在swift和C中的区别

   1)case

      case和switch()后面可以是任意类型

   2)break

      在C语言中,如果case的结尾没有break,j就会接着执行下一个case

      在swift语句中,不需要再每一个case后面增加一个break,执行完case对应的代码后默认会自动退出switch语句

   3)default不能省

      switch要保证处理所有可能的情况,不然编译器直接报错

   4)每一个case后面必须有可执行的语句

3、case的多条件匹配

    一个case后面可以填写多个匹配条件,条件之间用逗号隔开

4、case的范围匹配

    case后面添加90...1000

5、case还可以用来匹配元组

     let point = (1,1)

     switch point{

        case (0,0):

          print("圆点上)

        case (_,0)://_能匹配任何值

          print("这个点在x轴上")

        case (-2...2,-2...2):
         
          print("这个点在矩形框内")

        default:

          print("这个点在其他位置")

     }

6、数值绑定

   在case匹配的同时,可以将swift中的值绑定给一个特定的变量或者常量,以便在后面的语句中使用

    let point = (10,1)

      switch(point){

        case let (x,0):

            print("\(x)")

        case let (0,y):
            
            print("(y)")
            
        case let (x,y):
            
            print("\(x) \(y)")
        }

7、swich语句可以使用where来增加判断的条件

    let point = (10,10)

    switch(point){
        
    case let (x,y) where x == y :
        
        print("在x=y那条线")
        
    case let (x,y) where x == -y:
        
        print("在x=-y那条线")
        
    case let (x,y):
        
        print("未知")
    }

8、fallthrough

   执行当前case后,会接着执行fallthrogh后面的case或者default语句

       let num = 20

       var str = "\(num)是个"

       switch num{

         case 0...50:

           str += "0~50之间的"
           fallthrough

         default :

           str += "整数"
       }

你可能感兴趣的:((三)swift支持的流程结构)