Swift之旅 switch用法

前端之家收集整理的这篇文章主要介绍了Swift之旅 switch用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Swift中的switch语句与Java等语言中的switch有很大的相似点,但是也有不同的地方,并且更加灵活。

Swift中switch的case语句中不需要添加break

Swift中需要考虑所有情况,default是必要的。

case分支可以添加多个条件,用,分割

case不局限与常量,可以使使用范围

switch里可以使用元组

switch默认不需要添加break,执行一个case之后就跳出语句,如果想要继续下面的语句可以使用fallthrough,但是fallthrough是直接进入下一个case的语句,不会进行case的判断。感觉这里好坑。

实例代码

1、不需要break,case里多个值用,分割。default不能省略

let name = "yangqiangyu"@H_404_13@

switch@H_404_13@ name{
case@H_404_13@ "yangqiangyu"@H_404_13@,"yqy"@H_404_13@:
    print@H_404_13@("This is my name"@H_404_13@)
default@H_404_13@:
    print@H_404_13@("This is not my name"@H_404_13@);
}


//"This is my name\n"@H_404_13@

2、case条件里用范围表达式

let score = 90@H_404_13@;

switch@H_404_13@ score{
case@H_404_13@ 0@H_404_13@:
    print@H_404_13@("you got an egg"@H_404_13@)
case@H_404_13@ 1.@H_404_13@.<60@H_404_13@:
    print@H_404_13@("you Failed"@H_404_13@)
case@H_404_13@ 60@H_404_13@:
    print@H_404_13@("Just passed"@H_404_13@)
case@H_404_13@ 61.@H_404_13@.<80@H_404_13@:
    print@H_404_13@("Just so so"@H_404_13@)
case@H_404_13@ 80.@H_404_13@.<90@H_404_13@:
    print@H_404_13@("Good"@H_404_13@)
case@H_404_13@ 90.@H_404_13@.<100@H_404_13@:
    print@H_404_13@("Great"@H_404_13@)
case@H_404_13@ 100@H_404_13@:
    print@H_404_13@("Perfect!"@H_404_13@)
default@H_404_13@:
    print@H_404_13@("Error"@H_404_13@)
}

//输出结果:"Great\n"@H_404_13@

3、switch使用元组

let point:(x:Int,y:Int) = (x:1@H_404_13@,y:1@H_404_13@)
switch@H_404_13@ point{
case@H_404_13@ (0@H_404_13@,0@H_404_13@):
    print@H_404_13@("It's a origin"@H_404_13@)
case@H_404_13@ (_,0@H_404_13@)://忽略point中的x值@H_404_13@
    print@H_404_13@("It's on x-axis."@H_404_13@)
case@H_404_13@ (0@H_404_13@,_)://忽略point中的y值@H_404_13@
    print@H_404_13@("It's on y-axis"@H_404_13@)
default@H_404_13@:
    print@H_404_13@("It's just an ordinary point"@H_404_13@)
    break@H_404_13@
}

//输出结果:@H_404_13@
"It's just an ordinary point\n"@H_404_13@

4.switch中的case中需要使用元组中的值

let@H_404_13@ point2 = (8@H_404_13@,0@H_404_13@)
switch@H_404_13@ point2{
case@H_404_13@ (0@H_404_13@,0@H_404_13@):
    print@H_404_13@("It's a origin"@H_404_13@)
case@H_404_13@ (let@H_404_13@ x,0@H_404_13@)://@H_404_13@赋值给x
    print@H_404_13@("It's on x-axis."@H_404_13@)
    print@H_404_13@("The x value is \(x)"@H_404_13@)
case@H_404_13@ (0@H_404_13@,let@H_404_13@ y)://@H_404_13@赋值给y
    print@H_404_13@("It's on y-axis"@H_404_13@)
    print@H_404_13@("The y value is \(y)"@H_404_13@)
case@H_404_13@ (let@H_404_13@ x,let@H_404_13@ y):
    print@H_404_13@("The x value is \(x)"@H_404_13@)
    print@H_404_13@("The y value is \(y)"@H_404_13@)
}

//@H_404_13@输出结果:
"It's on x-axis.\n"@H_404_13@
"The x value is 8\n"@H_404_13@

5.fallthrough使用

let score = 90@H_404_13@;

switch@H_404_13@ score{
case@H_404_13@ 0@H_404_13@:
    print@H_404_13@("you got an egg"@H_404_13@)
case@H_404_13@ 1@H_404_13@..<60@H_404_13@:
    print@H_404_13@("you Failed"@H_404_13@)
case@H_404_13@ 60@H_404_13@:
    print@H_404_13@("Just passed"@H_404_13@)
case@H_404_13@ 61@H_404_13@..<80@H_404_13@:
    print@H_404_13@("Just so so"@H_404_13@)
case@H_404_13@ 80@H_404_13@..<90@H_404_13@:
    print@H_404_13@("Good"@H_404_13@)
case@H_404_13@ 90@H_404_13@..<100@H_404_13@:
    print@H_404_13@("Great"@H_404_13@)
     fallthrough@H_404_13@
case@H_404_13@ 100@H_404_13@:
    print@H_404_13@("Perfect!"@H_404_13@)
default@H_404_13@:
    print@H_404_13@("Error"@H_404_13@)
}

//输出@H_404_13@
"Great\n"@H_404_13@
"Perfect!\n"@H_404_13@

总结

可以发现,Swift中的switch更加灵活和简洁,使用switch可以方便的处理很多操作。

猜你在找的Swift相关文章