如果你不需要知道范围内每一项的值,可以使用_来替换变量名来忽略对值的访问
for _ in 1...p{}
for var i = 0;i<3;++i{}
每一个case语句都必须执行至少一条语句
switch anotherCharacter {
3. case "a":
4. case "A":
5. println("The letter A")
6. default:
7. println("Not the letter A")
8. }//无效
switch `some value to consider` {
case `value 1`,
value 2`:
`statements`
}
如果想贯穿case块可以使用fallthrough语句
case快也可以是一个值的范围。
switch count {
case 0:
naturalCount = "no"
case 1...3:
naturalCount = "a few"
default:
naturalCount = "millions and millions of"
}
元组
可以使用元组在同一个switch中测试多个值。_代表可以匹配任何值
let point = (1,1)
switch(point){
case (0,0):println()
case(0,_):println()
default:println()
}
值绑定(Value Bindings)
case块的模式允许将匹配的值绑定到一个临时常量或变量,这些常量或变量在该case块里就可以被引用了-----Value Bindings
let point = (1,1)
switch(point){
case (0,let y):println("\(y)")
case(0,_):println()
default:println()
}
Where
case块的模式可以使用Where语句来判断额外的条件
let point = (1,1)
switch(point){
case let(x,y) wherex == y :println()
case(0,_):println()
default:println()
}
控制转移语句
四种控制转移语句:
continue
break
fallthrough
return
fallthrough
switch(point){
case let(x,y) wherex == y :println()
fallthrough//落入到下一个case
case(0,_):println()
default:println()
}
fallthrough关键字不会检查它下一个落入的case中的匹配条件,直接执行下一个case的代码
显示地知名break语句终止的是哪个循环体或者switch,使用标签
label name:while condition{
break name
}