控制转移语句continue break fallthrough return throw

continue语句告诉一个循环体立刻停止本次循环,重新开始下次循环。就好像在说“本次循环我已经执行完了”,但是并不会离开整个循环体。

let puzzleInput = "great minds think alike"
var puzzleOutput = ""
for character in puzzleInput.characters {
    switch character {
    case "a", "e", "i", "o", "u", " ":
        continue
    default:
        puzzleOutput.append(character)
    }
}
print(puzzleOutput)
    // 输出 "grtmndsthnklk"

Break
break语句会立刻结束整个控制流的执行。当你想要更早的结束一个switch代码块或者一个循环体时,你都可以使用break语句。

fall through

在swift的switch中,case后面加了fallthrough的用法,就和OC的case后面没加break的用法是一样的!

使用fallthrough需要注意的有:

1.加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行

var age = 10
switch age {
    case 0...10:
        print(小朋友)
        fallthrough
    case 11...20:
        print(大朋友)
    case let x:
        print((x)岁的朋友)
}

//输出结果:
小朋友
大朋友

2.加了fallthrough语句后,【紧跟的后一个】case条件不能定义常量和变量
fallthrough后一个case条件里不允许定义常量/变量——除了紧跟着的后一个,后面的其他case还是可以定义常量/变量的
var age = 10
switch age {
    case 0...10:
        print(小朋友)
        fallthrough //此处报错
    case let x:
        print((x)岁的朋友)
}

//程序报错:
'fallthrough' cannot transfer control to a case label that declares variables
3.执行完fallthrough后直接跳到下一个条件语句,本条件执行语句后面的语句不执行

var age = 10
switch age {
    case 0...10:
        print(小朋友)
        fallthrough
        print(我跳转了哦) //这一句没有执行
    case 11...20:
        print(大朋友)
    case let x:
        print((x)岁的朋友)
}

//输出结果:
小朋友
大朋友
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容