Swiftプログラミングにおいて、switch文は異なる条件に基づいてコードの実行を制御するための強力なツールです。
この記事では、Swiftのswitch文の基本的な使い方から高度なテクニックまでを詳しく解説します。
switch文を使いこなし、よりクリーンで効率的なコードを書く手助けになるでしょう。
【迷ったらココ!】Swiftが学べるプログラミングスクール3選
当サイトではプログラミング学習やエンジニア転職に関する情報を発信しています。他の記事も合わせてご覧ください。
SwiftやiPhoneアプリ開発におすすめの本・参考書7選【現役エンジニアが解説】
iPhoneのアプリ開発を独学で勉強したい!なにか良い本は無いかな? SwiftやXcodeの勉強で挫折した...自分のレベルに合った参考書を知りたい! 今回はこんな悩みを解決していきます。 iPho ...
更新日:2024年1月31日
目次
Swiftの基本的なswitch文の使い方
switch文を使用して、ある値に基づいて異なるケースを処理する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 | let dayOfWeek = "火曜日" switch dayOfWeek { case "月曜日": print("仕事の始まりです。") case "火曜日": print("会議があります。") case "水曜日": print("週の中間です。") default: print("休日です。") } |
このコードでは、dayOfWeekの値に応じて、異なるケースが実行されます。switch文はcaseラベルにマッチしたケースを実行し、defaultブロックはどのケースにもマッチしない場合に実行されます。
フォールスルー(Fallthrough)
fallthroughキーワードを使用して、次のケースも実行する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 | let dayOfWeek = "水曜日" switch dayOfWeek { case "月曜日": print("仕事の始まりです。") case "火曜日": print("会議があります。") case "水曜日": print("週の中間です。") fallthrough default: print("休日です。") } |
このコードでは、dayOfWeekが"水曜日"の場合、"週の中間です。"の後にfallthroughがあるため、次のdefaultブロックも実行されます。
複数の条件に合致する場合のswitch文
caseラベルに複数の条件を指定して、条件に合致するケースを処理する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 | let temperature = 25 switch temperature { case 0...10: print("寒いです。") case 11...20: print("涼しいです。") case 21...30: print("快適です。") default: print("暑いです。") } |
このコードでは、temperatureの値に応じて異なるケースが実行されます。0...10、11...20、21...30は範囲を表しており、これらの範囲内の値が該当のケースにマッチします。
タプルや列挙型(Enum)を使用する場合のswitch文
switch文では、タプルや列挙型(Enum)を使用して複雑な条件を扱うこともできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | enum TrafficLight { case red, yellow, green } let currentLight = TrafficLight.green switch currentLight { case .red: print("停止") case .yellow: print("注意") case .green: print("進行") } |
このコードでは、列挙型TrafficLightを使用して、交通信号の色を表現しています。switch文を使用して、現在の信号の色に応じて適切な操作を実行しています。
where句を使用して条件を追加する場合のswitch文
where句を使用して、ケースに追加の条件を指定することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | let score = 75 switch score { case 0...60: print("不合格") case 61...80: print("合格") case 81...100 where score % 2 == 0: print("優秀かつ偶数") case 81...100: print("優秀") default: print("範囲外") } |
このコードでは、where句を使用して、さらなる条件を指定しています。例えば、81から100の範囲内でかつ偶数の場合に"優秀かつ偶数"というケースが実行されます。
Swiftのswitch文は柔軟で強力な条件分岐の機能を提供しており、さまざまなシナリオに適用できます。条件に合致するケースを探し、対応するコードブロックを実行する際に非常に便利です。
switch文と型の組み合わせ
switch文は型にも適用でき、特定の型に一致するかどうかを確認できます。
1 2 3 4 5 6 7 8 9 10 | let value: Any = 42 switch value { case is Int: print("これは整数です") case is String: print("これは文字列です") default: print("その他の型です") } |
このコードでは、valueの型に応じて適切なメッセージを表示します。isキーワードを使って型の一致をチェックできます。
where節の使用
switch文内でさらに条件を追加する場合、where節を使用できます。
1 2 3 4 5 6 7 8 | let number = 10 switch number { case let x where x % 2 == 0: print("\(number)は偶数です") default: print("\(number)は奇数です") } |
このコードでは、where節を使ってnumberが偶数か奇数かを判定しています。
switch文のネスト
switch文はネストでき、複雑な条件分岐を行うのに役立ちます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | let day = "weekend" let weather = "sunny" switch day { case "weekend": switch weather { case "sunny": print("週末で晴れています") default: print("週末ですが天気は良くありません") } default: print("平日です") } |
このコードでは、曜日と天気の組み合わせに応じてメッセージを表示します。ネストされたswitch文は複雑な条件を表現するのに役立ちます。
Swiftを学習中の方におすすめの記事
Swiftが学べるプログラミングスクールおすすめ6選【iPhoneアプリ開発】
Swiftを学習して挫折したからプログラミングスクールに入塾したい!でもどのスクールが良いんだろう... SwiftやiPhoneアプリ開発を学びたいけどまず何から始めたら良いのか分からない...プロ ...
更新日:2024年1月29日
SwiftやiPhoneアプリ開発におすすめの本・参考書7選【現役エンジニアが解説】
iPhoneのアプリ開発を独学で勉強したい!なにか良い本は無いかな? SwiftやXcodeの勉強で挫折した...自分のレベルに合った参考書を知りたい! 今回はこんな悩みを解決していきます。 iPho ...
更新日:2024年1月31日
SwiftとObjective-Cはどっちがおすすめ?【違いを徹底比較】
SwiftとObjective-Cだったらどっちを使えば良いのかな?両方の特徴や違いを詳しく知りたい! 今回はこんな疑問にお答えしていきます。 エンジニアを目指す人が最初に抱える悩みの1つに「プログラ ...
更新日:2024年1月31日