Swiftのwhere句を使ったswitch文の高度な使い方を解説!初心者でも理解できる条件分岐の応用
生徒
「先生、Swiftのswitch文って使ったことあるんですけど、where句を使うともっと複雑なことができるって聞きました。どういう意味ですか?」
先生
「とても良いテーマですね。Swiftのswitch文では、where句を使うことで、より細かい条件で分岐処理ができるようになりますよ。」
生徒
「それってどうやって書くんですか?難しそう…」
先生
「大丈夫です!初心者でも理解できるように、順を追ってわかりやすく説明していきますね!」
1. Swiftのswitch文とは?
Swift(スウィフト)でよく使われるswitch文は、ある値に応じて異なる処理を分けるための構文です。if文よりも読みやすく、複雑な条件分けができるのが特徴です。
例えば、以下のように使います。
let fruit = "apple"
switch fruit {
case "apple":
print("リンゴです")
case "banana":
print("バナナです")
default:
print("その他の果物です")
}
リンゴです
このように、変数の値によって処理を分岐します。
2. where句とは?追加条件をつける構文
Swiftのwhere句は、「もし〇〇のとき、かつ□□のとき」のように、caseの中にさらに条件を加えたいときに使います。
where句を使うことで、値のパターンと論理的な条件の両方をチェックできます。まるで、条件を絞り込むフィルターのような働きをします。
3. where句を使った基本のswitch文
たとえば、ある年齢によって学生か社会人かを判定したいとします。ただし、20歳未満でも未成年は特別に扱いたいという場合、次のように書きます。
let age = 17
switch age {
case let x where x < 13:
print("子供です")
case let x where x < 20:
print("未成年の学生です")
case 20...64:
print("社会人です")
default:
print("高齢者です")
}
未成年の学生です
このようにlet x where x < 20と書くことで、「xという変数に代入して、それが20未満かどうか」を条件にしています。
4. where句とタプルの組み合わせで柔軟な条件
Swiftでは、複数の値をまとめて扱えるタプル(例:(名前, 年齢))とwhere句を組み合わせることで、より柔軟な条件分岐が可能になります。
let person = ("たろう", 25)
switch person {
case let (name, age) where age < 18:
print("\(name)さんは未成年です")
case let (name, age) where age < 65:
print("\(name)さんは成人です")
default:
print("高齢者です")
}
たろうさんは成人です
このようにwhere句でタプルの中の値に条件をかけることで、複数の値に基づいた分岐ができます。
5. where句と複雑な条件の応用例
さらに応用として、2つの整数の関係性によって処理を変えたいときも、where句はとても便利です。
let pair = (3, 9)
switch pair {
case let (a, b) where a == b:
print("同じ値です")
case let (a, b) where a < b:
print("左の数が小さいです")
case let (a, b) where a > b:
print("右の数が小さいです")
default:
print("不明なパターンです")
}
左の数が小さいです
このようにswitchとwhereの組み合わせは、複数の条件やパターンに応じた処理を簡潔に書くことができるという大きなメリットがあります。
6. if文との違いと使い分け
「それってif文でも書けるのでは?」と思った方もいるかもしれません。たしかに、条件による分岐はifでも可能です。
しかし、複数のパターンを整理して見やすくしたいときはswitchの方が適しています。特にwhere句を使えば、ただの一致だけでなく、条件付きの分岐が読みやすく書けます。
7. 実生活で例えるとどうなる?
where句は、たとえば「りんごだけど赤いもの」「バナナだけど長さが20cm以上のもの」のように、特定の種類+条件で分類したいときに使えます。
普通のswitch文は「種類」で分けますが、where句を使うと「種類+性質」で分けられるのです。
8. 簡単な練習問題:where句を試してみよう
以下のコードで、どの出力になるかを考えてみましょう。
let score = 88
switch score {
case let s where s >= 90:
print("とても良い成績です")
case let s where s >= 70:
print("合格です")
default:
print("もう少し頑張りましょう")
}
合格です
このように、点数によって細かく条件を分けるのにもwhere句が役立ちます。
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。
Windowsで実現する開発環境
【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。
【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。
この60分で得られる3つの理解
OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。
iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。
将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。
※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。
Windowsで始めるiPhoneアプリ開発入門