Switch statement in Swift

后端 未结 7 1631
礼貌的吻别
礼貌的吻别 2020-12-01 01:26

I\'m learning syntax of Swift and wonder, why the following code isn\'t working as I expect it to:

for i in 1...100{

    switch (i){
    case 1:
        Int         


        
7条回答
  •  北荒
    北荒 (楼主)
    2020-12-01 01:51

    Here are the two ways I use switch statement for this kind of problems .

    1>> Using where keyword

    func printNumberType(number : Int){
        
        switch number {
        case number where number % 3 == 0 && number % 5 == 0 :
            print("foo bar")
        case number where number % 3 == 0 :
            print("foo")
        case number where number % 5 == 0 :
            print("bar")
        default :
            print("Number is not divisible by 3 and 5")
        }
    }
    

    2>> Using values combination

    func printNumberByMultipleValues(number : Int){
        
        let combination = (number % 3,number % 5)
        
        switch combination {
        case (0,0):
            print("foo bar")
        case (0,_) :
            print("foo")
        case (_,0) :
            print("bar")
        default :
            print("Number is not divisible by 3 and 5")
        }
    }
    

    Here is closer example for multiple value type .

    var printNumberByMultipleValues : (Int)->() = { number in
        
        let combination = (number % 3,number % 5)
        
        switch combination {
        case (0,0):
            print("foo bar")
        case (0,_) :
            print("foo")
        case (_,0) :
            print("bar")
        default :
            print("Number is not divisible by 3 and 5")
        }
    }
    

提交回复
热议问题