【Swift超基礎】条件分岐の基礎~if文とswitch文~
本記事では、if文やswitch文などの条件分岐処理とwhile文やfor文といった繰り返し処理について詳細に解説していきます。
条件分岐
条件分岐処理とは、その名の通り条件ごとに異なる処理を行うために使う構文です。
条件分岐処理には大きく分けてif文とswitch文の2つがあり、それぞれに追加解説していきます。
if文
if文は、「もし◯◯の条件に当てはまったら、Aの処理を行う。それ以外であれば、Bの処理を行う」といったようにある条件を指定し、その条件に当てはまるか否かによって異なる処理を行いたい場合に使用する構文です。

if文は上の図のような形が基本形となり、ifから書き始め、その後ろに条件式を記述し、条件を通過した場合の処理は波括弧で囲った内側に記載していきます。
指定した条件に満たなかった場合にはelse{}内の処理を行います。
実際の例として、出席番号1番の坂田くんと出席番号2番の高杉くんが競争をして、坂田くんが勝った場合にはwinnerNumberという変数に1を高杉くんが勝った場合には2を代入したい場合があるとします。
ここで坂田くんが勝つことを条件式にするとwinner == “坂田”となり、以下のような条件式になります。
var winner = "坂田"
var winnerNumber = 0
if winner == "坂田"{
winnerNumber = 1
}else{
winnerNumber = 2
}
else if文
if文では2択の選択肢だけでなく、1択や3択4択など複数の選択肢がある場合にも使用できます。3卓以上の選択肢がある条件分岐を行う際にはelse if構文を使用します。
先ほどの例文の続きで競争で坂田が勝った場合には1を、高杉が勝った場合には2を、それ以外の人が勝った場合には3を変数に代入する式を作成したい場合には以下のようになります。
if winner == "坂田" {
winnerNumber = 1
}else if winner == "高杉" {
winnerNumber = 2
}else{
winnerNumber = 3
}
このようにif文を使うことで、さまざまな条件ごとに異なる処理を自由に選択することが可能となり、最も利用される構文の1つです。
switch文
switch文は、if文と同様に条件分岐を行う際に使用する構文です。
if文との違いとしては、switch文は分岐のパターンが多い際に使用する場合、変数の値によって異なる処理をしたい場合に使用することが多く形式としては以下のような書き方をします。
switchの後ろに条件の元となる変数などを書き、波括弧内でその変数がどんな値であるかをcase 値という形で書き、全てのcaseのうちで条件に当てはまる場合の処理を1つだけ行い、処理を終えます。
また、どのcaseにも当てはまらなかった場合にはdefault以下の処理を実行します。

具体例として、以下のようにテストの点数によって条件分岐する場合、テストの点数ごとに異なる処理を行うことができます。
var score = 90
switch score {
case 100:
print("満点!")
case 90:
print("素晴らしい!")
case 50:
print("半分ですね。")
case 10:
print("非常に残念です。")
default:
print("コメントはありません。")
}
実行結果
素晴らしい!
複数のcaseを通過
また、switch文では上記の例では、scoreの値が90の場合には、基本的にはcase 90の配下の処理しか行われませんが、fallthroughという文字を記述して1つ下の処理を実行することもできます。
var score = 90
switch score {
case 100:
print("満点!")
case 90:
print("素晴らしい!")
fallthrough
case 50:
print("半分ですね。")
case 10:
print("非常に残念です。")
default:
print("コメントはありません。")
}
実行結果
素晴らしい!
複数条件
更に、switch文では複数の条件を1つのcaseの中に入れ込むこともできます。これは、複数ある条件の中でいくつかの条件の場合に同一の処理を行いたいという場合に使用します。
書き方としては、caseの部分で複数の値をコンマで区切って指定することで実現することができます。
var score = 90
switch score {
case 100, 90:
print("ほぼ満点!")
case 80,70:
print("素晴らしい!")
fallthrough
case 50:
print("半分ですね。")
case 10:
print("非常に残念です。")
default:
print("コメントはありません。")
}
実行結果
ほぼ満点!
上記の例では、scoreが100点、あるいは90点の場合にほぼ満点!という文字列を出力する処理になっており、複数の条件によって同じ処理を実現することができています。
条件で範囲指定
最後に紹介するのは、値の範囲を指定したswitch文です。先ほどまで紹介したswitch文の例では、100点の時や100点と90点の時には条件を通過することができましたが、95点の時には条件を通過することができませんでした。
そこで100点から90点の場合にswitch文で条件を通過するように指定する方法をお伝えします。
書き方としては、指定したい範囲の最大値と最小値をかっこで囲んで、間にカンマを3つ書きます。( 値1…値2 )と書きます。
var score = 90
switch score {
case (90...100):
print("ほぼ満点!")
case (70...80):
print("素晴らしい!")
fallthrough
case 50:
print("半分ですね。")
case 10:
print("非常に残念です。")
default:
print("コメントはありません。")
}
この記述により、上の例では90-100点の間の時には、ほぼ満点!が表示され、70-80点の際には素晴らしい!と表示する処理を実行することができます。
最後に
最後にif文とswitch文について簡単にまとめます。
- if文は、指定した条件下で処理を行うことができ、elseを使うことで条件外の場合の処理も指定できる
- else ifを使用することで、ifの条件に当てはまらなかった場合の別の条件も指定できる
- if文は最も多く利用される条件分岐構文で、条件指定の自由度が高い
- switch文は、switchで指定した条件の値によってcase配下に書いた処理を実行できる
- switch文は条件が複雑でなく、分岐が多岐に渡る場合に使用することに向いている
他にもswiftに関する記事やSwiftUIに関する記事も書いていきますので、ぜひご覧ください。
-
前の記事
【Swift超基礎】変数と定数の違いと使い方 2023.05.05
-
次の記事
【Swift超基礎】繰り返し処理の基礎〜while文とfor文〜 2023.05.14