条件文の書き方(if文,guard文)
swift3.01での条件文+バインディング式の書き方の勉強中です。
TestSwitch関数は、「.Pass」 or 「.Fail(n) where n >100」のとき
switch文が実行されるようにしたいのですが、
if文では、条件にすべて合致しないので、すべてswitch文が実行されます。
guard文では、条件に合致するようで、switch文が実行されません。
条件式の、「or」「,」「where」など使い方が分かっていません。
教えてください。
func TestSwitch(_ e:Exam){
1.
//if case let .Fail(a) = e, a < 100 , case .Pass = e{
// return
//}
2.
//guard case let .Fail(a) = e, a > 100 , case .Pass = e else{
// return
//}
switch e {
case .Pass(let n) where n < 300:
print("Pass:300:\(n)")
case let .Pass(n) where n < 5000:
print("Pass:5000:\(n)")
case .Fail:
print(e)
default:
break
}
}
enum Exam {
case Pass(Int)
case Fail(Int)
}
let exam : [Exam] = [.Pass(100), .Fail(50), .Fail(500), .Pass(1000)]
for e in exam{
TestSwitch(e)
}