美文网首页
swift 4.x 控制流 使用 if 和 switch 来进

swift 4.x 控制流 使用 if 和 switch 来进

作者: SnailLi | 来源:发表于2018-05-22 17:53 被阅读19次
         /*
         if、for-in语句的结合使用
         */
        let array = [85,52,52,5266,52363,63330,8602,8222]
        
        var numbers1  = [Any]()
        var numbers2 = [Any]()
        
        var number = 0
        for num in array {
            
            if num > 100{
                
                numbers1.append(num)
                
                number += 3
                
            }else{
                
                numbers2.append(num)
                
                number -= 1
                
            }
            
        }
    
        print("numbers1:\(numbers1),numbers2:\(numbers2),number:\(number)")
    
    
      /*
         if语句的使用
         */
        let optionalString: String? = "Hello"
        /*
         在 if 语句中,条件必须是一个布尔表达式
         */
        print(optionalString != nil)
        print(optionalString == nil)
    
       /*
         可以一起使用 if 和 let 来处理值缺失的情况
         如果变量的可选值是 ,条件会判断为 ,大括号中的代码会被跳过。如果不是 ,会将值解包并赋给 后面的常量,这样代码块中就可以使用这个值了
         */
        let optionalName: String? = nil
        var greeting = "Hello!"
        if let name = optionalName {
    
            //当optionalName的值不为nil的话,会执行这个代码块
            greeting = "Hello, \(name)"
    
        }
        else{
    
            greeting = "Hello"
    
        }
    
        print(greeting)
        
        /*
         另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值
         */
        let nickName : String? = nil
        let fullName :String = "John Appleseed"
    
        //当nickName的值为nil的时候,会取fullName的值
        let string = "Hi \(nickName ?? fullName)"
    
        print(string)
    
    
         /*
         switch语句 支持任意类型的数据以及各种比较操作  跟3.0不一样,4.0必须加上break
         */
        
        let title = "我在学习swift"
        
        switch title {
        case "123":
            
            let string = "swift是一门很棒的编程语言"
            
            print("\(title),\(string)")
            
            break
            
        case let x where x.hasSuffix("f")://let将匹配等式的值赋给常量 x     后缀
            
            print("\(x)")
            
            break
            
        case let x where x.hasPrefix("我")://let将匹配等式的值赋给常量 x     前缀
            
            print("\(x)")
            
            break
            
        default:
            
            
    
            break
            
            
            
            
        }
        
    }
    
         /*
         for-in 来遍历
         */
        let interestingNumbers = [
            "Prime": [2, 3, 5, 7, 11, 13],
            "Fibonacci": [1, 1, 2, 3, 5, 8],
            "Square": [1, 4, 9, 16, 25],
            ]
        var largest = [Any]()
        
        
        
        //需要两个变量来表示每个键值对。字典是一个无序的集合,所以他们的键和值以 任意顺序迭代结束。
        for (kind , numbers) in interestingNumbers {
            
            for number in numbers{
                
                largest.append(number)
                
            }
            
            print(kind)
            
        }
        
    
        print("largest:\(largest)")
    
    
           /*
         while 来重复运行一段代码直到不满足条件
         */
        var n = 2
        while n < 100 {
            
            
            n = n * 2
            
            print(n)
            
    
        }
        
    }
    
          /*
         repeat-while语句
         循环条件也可以在结尾,保证能至少循环一次
         */
        var m = 2
        repeat {
            
            m=m * 2
            
        } while m < 100
        
        print(m)
    
       /*
         使用 ..< 创建的范围不包含上界,如果想包含的话需要使用 ...
         */
        var total = 0
        for i in 0..<4 {
            
            total += i
            
            print(total)
            
        }
    

    相关文章

      网友评论

          本文标题:swift 4.x 控制流 使用 if 和 switch 来进

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