swift 初级 C语言和swift中 switch用法区别

① 在C语言中

如果case的结尾没有break,就会接着执行下一个case
在swift中 
不需要在每一个case 后面增加break,执行完case对应的代码后会自动推出swich语句
比如swift中可以这样写:

let grade = "B"

switch grade {

    case "A":

    print ("优秀")

    case "B":

    print ("优良")

    case "C":

    print("中等")

default:

    print("未知");

}

程序的输出为 “优良"

②对条件匹配

在C语言中,switch 的多条件匹配是这样的:

        switch (age) {

            case 1:

            case 2:

            case 3:

                printf("小孩");

                break;

            default:

                break;

        }

而在swift中则是这样的:

var age = 10

switch age {

case 1,2,3:

    print("小孩");

default:

    break

}

有没有看出其中的不同那

③ switch在swift中 case 范围的匹配,比如 你可以这样写

let score = 95

switch score {

case 90...100:

    print("优秀")

case 60...89:

    print("及格")

default:

    print("不及格")

}

注意:switch要保证处理所有的可能情况,不然编译器会报错,因此,这里的default一定要加,不然就出现了一些处理不到的情况.

④case匹配元组,比如判断某一点是否在某个坐标范围内可以这样:

let point = (1,1)

switch point {

case (0,0):

    print("在原点上")

case (_,0):

    print("x轴上")

case (0,_):

    print("y轴上")

case (-2...2,-2...2):

    print("在方框内")

default:

    break}

⑤ case 的数值绑定

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

let point = (1,1)

switch point {

case (let x,0):

    print("x值为\(x)”) //这里能够输出 x的值

case (0,let y):

    print("x值为\(y)”) //这里能够输出 y的值

case let (x,y):

    print("x值为\(x)")

}

⑥在swift中 switch语句可以使用where来增加判断的条件

比如:

let point = (1,1)

switch point {

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

    print("x值为\(x)")

case (0,let y):

    print("x值为\(y)")

case let (x,y):

    print("x值为\(x)")

}

输出为:x值为1

⑦fallthrough的使用

fallthrough 的作用是当执行完当前的case之后,会接着执行fall through后面的case或default语句,箱单与C语言中的switch不写break
比如

let num = 20

var str = "\(num)是个"

switch num {

case 0...50:

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

    fallthrough

default:

    str += "整数"

}

print(str)

输出为:20是个0~50之间的数整数 
注意:fallthrough后面的case 条件不能定义变量和常量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值