カテゴリ: Swift 更新日: 2025/12/20

Swiftのswitch文の使い方|初心者でもわかるパターンマッチング徹底解説

Swift switch文の使い方|パターンマッチング徹底解説
Swift switch文の使い方|パターンマッチング徹底解説

先生と生徒の会話形式で理解しよう

生徒

「Swiftでswitchっていうのを見かけたんですけど、これは何に使うんですか?」

先生

switch文は、ある値に応じて実行する処理を切り替えたいときに使います。if文をたくさん書かなくても済む便利な方法なんですよ。」

生徒

「なるほど!具体的にどうやって書けばいいんでしょうか?」

先生

「それでは、switch文の基本の使い方から、便利な書き方まで一緒に見ていきましょう!」

1. switch文とは?

1. switch文とは?
1. switch文とは?

switch文(スイッチぶん)は、Swiftで値に応じて処理を切り替えるための制御構造です。

たとえば、「信号の色に応じて、進む・止まる・注意する」など、状況によって行動を変えたいときに使います。

2. switch文の基本構文

2. switch文の基本構文
2. switch文の基本構文

まずは、switch文の書き方を見てみましょう。これは信号の色によって動作を変える例です。


let signal = "赤"

switch signal {
case "赤":
    print("止まってください")
case "青":
    print("進んでください")
case "黄":
    print("注意してください")
default:
    print("不明な信号です")
}

case(ケース)は、それぞれの条件を表します。defaultは、どのcaseにも当てはまらなかったときに実行される部分です。

3. breakが不要なのがSwiftの特徴

3. breakが不要なのがSwiftの特徴
3. breakが不要なのがSwiftの特徴

Swiftのswitch文は、他の言語と違って、breakを書かなくても自動的に処理が終わります。

例えばJavaでは、各caseの最後にbreakが必要ですが、Swiftでは不要です。そのため、うっかり書き忘れて意図しない動作になる心配がありません。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

4. 複数の値をまとめて書く方法

4. 複数の値をまとめて書く方法
4. 複数の値をまとめて書く方法

同じ処理を複数の値に対して行いたいときは、,(カンマ)で区切って書くことができます。


let animal = "犬"

switch animal {
case "犬", "猫":
    print("ペットとして人気です")
case "馬":
    print("走るのが得意です")
default:
    print("未知の動物です")
}

このように複数の選択肢を1つのcaseにまとめることができるので、コードがすっきりします。

5. 数値の範囲を使ったパターンマッチング

5. 数値の範囲を使ったパターンマッチング
5. 数値の範囲を使ったパターンマッチング

Swiftのswitch文では、数値の範囲を条件にすることもできます。


let score = 85

switch score {
case 90...100:
    print("とてもよくできました")
case 70..<90:
    print("よくできました")
case 0..<70:
    print("がんばりましょう")
default:
    print("スコアが不正です")
}

90...100は「90から100までを含む」、70..<90は「70以上90未満」という意味です。

6. where句で条件を追加する

6. where句で条件を追加する
6. where句で条件を追加する

switch文では、whereを使って条件を細かく指定することができます。


let number = -5

switch number {
case let x where x < 0:
    print("負の数です")
case let x where x == 0:
    print("ゼロです")
case let x where x > 0:
    print("正の数です")
default:
    print("数値が不明です")
}

let xで変数に値を取り出して、whereで条件を付けることができます。

7. タプルを使ったswitch文の応用

7. タプルを使ったswitch文の応用
7. タプルを使ったswitch文の応用

Swiftでは、タプル(複数の値をまとめたもの)に対してもswitch文を使えます。


let point = (x: 0, y: 0)

switch point {
case (0, 0):
    print("原点です")
case (_, 0):
    print("X軸上です")
case (0, _):
    print("Y軸上です")
case (-10...10, -10...10):
    print("原点近くです")
default:
    print("遠くの座標です")
}

_(アンダースコア)は、「どんな値でもよい」という意味のワイルドカードです。これを使えば、特定の値だけをチェックすることができます。

8. switch文の注意点とコツ

8. switch文の注意点とコツ
8. switch文の注意点とコツ

switch文を使うときの注意点と、覚えておくと便利なポイントを紹介します。

  • 全てのパターンをカバーする必要がある(defaultが推奨)
  • 範囲やパターンで条件を簡潔に書ける
  • 複数の条件をまとめて扱えるのでif文より見やすい
  • breakは不要なので書き忘れの心配がない

コードの分岐が多い場合や、読みやすく整理したいときには、switch文を積極的に使ってみましょう。

まとめ

まとめ
まとめ

Swiftのswitch文は、初心者が条件分岐を整理して理解しやすくするためにとても便利な構文であり、複雑な条件を視覚的にすっきりまとめられる強力な仕組みです。今回の記事で学んだように、値に応じて異なる処理を振り分ける場合、switchを使うことでコード全体の見通しが大きく改善されます。特に、複数条件をスマートに整理できる点や、不必要なbreakを記述しなくてもよいというSwift独自の特徴は、初心者にとって書きやすさと理解しやすさを同時に実現する大きなメリットになります。信号の色や数値評価、動物の種類、または文字列やタプルの組み合わせなど、日常的な例を通じて学ぶことで、switch文が「単なる条件分岐の手段」ではなく「複雑なルールを整理して読みやすくするツール」であるということが実感できるようになります。

さらに、Swiftではswitch文が非常に多機能であり、単純な値比較だけでなく、範囲指定・パターンマッチング・タプル分解・where句による条件追加など、多様な書き方が可能です。こうした柔軟な表現力のおかげで、if文では煩雑になりがちなロジックも、美しく簡潔なコードへと整理できます。たとえば、テストの点数を評価する処理では範囲を用いたパターン、座標判定ではタプルとワイルドカードを組み合わせることで、処理の意図が非常に明確になります。これは読み手にとっても大きな利点で、条件ごとにまとまりのある構造をそのまま読み進めることができ、誤読や書き間違いを防ぐ効果もあります。

また、Swiftのswitch文は必ず全てのパターンを網羅する必要があるため、漏れのない安全なコードを書くための強い味方にもなります。万が一どのcaseにも当てはまらない状況が発生しても、defaultを記述しておけば予期せぬエラーや処理落ちを防げます。実践的には、APIレスポンスの種類分岐、デバイス状態の判定、配列要素の分類など、多くの場面でswitchが役立つため、基本を早めに身につけておくと今後のプログラミング学習でも大きな力になります。

実際の開発では、条件が増えれば増えるほどswitch文の整理力が活きてきます。特に、複雑な条件が連続して続くコードは、初心者だけでなく経験者にとっても読みづらく、バグの温床になりがちです。そうした場面でswitch文を活用すれば、直感的に追えるロジックを保ちつつ、保守性の高いコードに仕上げることができます。学習の初期段階でswitchの基本と応用を身につけておけば、後々扱うAPIレスポンス判定、UI状態管理、ビジネスロジック分岐などにもスムーズに対応できるようになります。

switch文の応用サンプルコード

以下は複数の条件を組み合わせて判定する応用例で、Swiftのswitch文の柔軟さを実感できるコードです。


let userStatus = (isLogin: true, age: 20)

switch userStatus {
case (true, 18...100):
    print("ログイン中・大人のユーザーです")
case (true, 0..<18):
    print("ログイン中・未成年ユーザーです")
case (false, _):
    print("ログインしていません")
default:
    print("状態を判定できません")
}

タプルと範囲を組み合わせることで、読みやすく明確なロジックを実装できます。複雑な条件整理に役立つので、さまざまな場面で応用してみましょう。

先生と生徒の振り返り会話

生徒

「switch文って、ただ条件分岐するだけじゃなくて、いろんな書き方ができて便利なんですね!」

先生

「その通りです。特に範囲やタプルに対応しているところがSwiftのswitch文の魅力ですね。複雑な条件でもすっきり整理できますよ。」

生徒

「if文で書くと長くなる処理も、switch文なら見やすくまとめられるってわかりました!」

先生

「その気づきはとても大事です。プログラムは読みやすさが大切ですから、switch文を使いこなせるとコードの質がぐっと上がりますよ。」

生徒

「タプルやwhere句の使い方も面白かったです!もっと練習して慣れていきたいと思います!」

先生

「その意欲があれば大丈夫。これから書くコードでどんどんswitch文を試して、表現力を広げていきましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Swiftのswitch文とは何ですか?初心者にもわかる意味と使い方を教えてください

Swiftのswitch文とは、ある値に応じて処理を分岐させるための構文です。if文のように複数の条件をチェックせず、すっきりと整理して書けるのが特徴です。
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New2
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New3
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
New4
Swift
Swiftでエラー原因を可視化!ログとトレースのベストプラクティスを初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク