次に、switchでbreakステートメントを使用する例を示します。
let numberSymbol: Character = "三" // Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "١", "一", "๑":
possibleIntegerValue = 1
case "2", "٢", "二", "๒":
possibleIntegerValue = 2
case "3", "٣", "三", "๓":
possibleIntegerValue = 3
case "4", "٤", "四", "๔":
possibleIntegerValue = 4
default:
break
}
if let integerValue = possibleIntegerValue {
println("The integer value of \(numberSymbol) is \(integerValue).")
} else {
println("An integer value could not be found for \(numberSymbol).")
}
possibleIntegerValue
はoptional Int
ですので、スイッチでブレークを使用するより良い例としてこれを見つけることはできません。休憩の代わりに、possibleIntegerValue = nil
も機能します。
let numberSymbol: Character = "三" // Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "١", "一", "๑":
possibleIntegerValue = 1
case "2", "٢", "二", "๒":
possibleIntegerValue = 2
case "3", "٣", "三", "๓":
possibleIntegerValue = 3
case "4", "٤", "四", "๔":
possibleIntegerValue = 4
default:
possibleIntegerValue = nil
}
if let integerValue = possibleIntegerValue {
println("The integer value of \(numberSymbol) is \(integerValue).")
} else {
println("An integer value could not be found for \(numberSymbol).")
}
したがって、この場合、break
はまったく必要ありません。誰かが私が意図的にいくつかのケースを無視しなければならない場合にスイッチでブレークを使用する適切な例を私に与えることができますか?
本は言う:
この動作を使用して、switchステートメントの1つ以上のケースを照合および無視できます。 Swiftのswitchステートメントは網羅的で空のケースを許可しないため、意図を明確にするために、意図的にケースを一致させて無視することが必要になる場合があります。これを行うには、breakステートメントを無視するケースの本文全体として記述します。そのケースがswitchステートメントと一致すると、ケース内のbreakステートメントは、switchステートメントの実行をすぐに終了します。
break
内のswitch
ステートメントは、実際の機能を持たせる必要はないが、ロジックを簡単または明確にするためにケースを含める場合に使用できます。たとえば、switch
ステートメントを使用して、特定の年がうるう年かどうかを判断するとします。 (これは少し不自然な例です。)
func isLeapYear(year: Int) -> Bool {
switch (year) {
case let x where (x % 100) == 0 && (x % 400) != 0:
break
case let x where (x % 4) == 0:
return true
default:
break
}
return false
}
isLeapYear(2014) // false
isLeapYear(2000) // true
isLeapYear(1900) // false
switch
内のisLeapYear
ステートメントの最初のケースでは、年が100で割り切れる場合と400で割り切らない場合の両方のケースをトラップできます。その場合のbreak
ステートメントは、「何もしない」ことを意味します。