switch语句

switch与其他语言的显著区别

1)被执行到的case中会自动break,即使没有显示的写break语句,

满足一个caes后也不会继续执行下一条case,当然如果写C语言写习惯了,手动加上break也可以。

2)可以有多个条件语句

3)可以使用range类型变量

4)可以使用元组类型作为switch

5)再case中可以使用where语句,添加判断条件

6)   switch中如果确实想执行完一条case后,继续想执行下一条case的话,可以用fallthrough语句


var char ="a"

switch( char )

{

   case"A":

        println("A")   //每个case必须有一条语句

    case"a","A":      //可以判断多个条件,满足任何一个可执行

       println("a")

    case"B","a":      //满足了上面的条件,不会再继续向下执行,此句不执行

       println("B or a")

    default:

       println("default")

}


// case 中可以是一个范围

var data =3

switch(data)

{

   case1...6:

        println("This is a range")

    default:

        println("other data")

}


//可以使用元组来测试多个值,也可以使用_来匹配任意值

var point = (1,4//case中只能匹配有两个数据的坐标tuple

switch point

{

case (1,2):

    println("array (1,2)")

case (1,_):

    println("array (1, any int)")

case (1...3,4...6)://也可以使用range

    println("array data is range")

default:

    println("other data")

}


// case中允许值绑定 value binding

// 如下面的例子,数据被第一个case拦截,并绑定到x中,下面的case 1:语句不能执行。

var dat =1

switch dat

{

case var x:

    println(" The data is\(dat)!")

case 1:

    println("test")

}


//switch的是元组的时候比较有用,可以验证其他的值并取得想要的值。

var tplpoint = (1,2,3)

switch tplpoint

{

case (let x,2,3):

   println("x is\(x)")

case (_,_,_):

    println("test")

}


// case语句中可以使用where条件来添加附加内容

switch tplpoint

{

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

    println("坐标x等于y坐标")

case (let x,let y,3)where y>x:

    println("y > x")

default:

    println("default")

}


// case语句中可以使用fallthrough来强制穿墙

switch tplpoint

{

case (let x,let y,3) where y>x:

    println("y > x")

    fallthrough

default:

   println("default")//即使满足第一个条件后,因为有fall through语句,所以可以穿墙

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值