はじめに
今回は条件判定のために必要な構文、if文とswitch文の書き方について紹介します。
条件文は多少書き方の違いはありますがSwift以外の多言語全てで使用されるプログラムの基本構文の1つです。
この投稿で書き方をしっかりと覚えておいてください。
条件文とは
プログラムでは異なる条件毎に処理を分岐させアプリを制御します。
例えば現実的な例としてマンガアプリで考えてみます。
そのアプリで購入したマンガを表示する処理を実装するとしましょう 。
その場合マンガのページを表示するにはどのような条件が考えられるでしょうか?
対象のマンガは購入済みかどうか、未購入の場合は購入するためのアプリ内マネーが足りているかどうか、通信エラーが発生したかどうか、etc.
考え出すとキリがありませんが、こういった考えられる状況全てに対して条件分岐させそれぞれ異なった処理を実装していく必要があります。
こういった場合に条件文と呼ばれるif文やswitch文を使用して制御していきます。
if文
それでは具体的な書き方を紹介していきます。
構文としては以下の通りです。
if 条件 {
条件が真の場合の処理
} else {
条件が偽の場合の処理
}
条件にはBool
型を入れる必要があります。
if
に与えた条件がtrue
の場合最初の処理ブロックに入ります。
false
となった場合はelse
の処理ブロックに入りそれぞれの処理を実行します。
またそれぞれの処理ブロックはどちらか片方しか実行されず、if
に入った場合else
は実行されません。
条件はBool
であれば変数、メソッド、式と何でも構いません。
// 変数
let boolValue = true
if boolValue {
print("boolValue is true")
} else {
print("boolValue is false")
}
// 式
let intValue = 1
if intValue == 1 {
print("intValue is 1")
} else {
print("intValue is not 1")
}
// メソッド
func boolFunction() -> Bool {
return true
}
if boolFunction() {
print("boolFunction() is true")
} else {
print("boolFunction() is false")
}
else
は必須ではなくif
のみでも使用できます。
if value > 0 {
print("0より大きい")
}
またif
文同士繋げることも可能です。
if value > 10 {
print("10より大きい")
} else if value < 10 {
print("10より小さい")
} else {
print("それ以外")
}
条件はBool
あればいいので、論理演算子を使って複数の条件を組み合わせることができます。
if value >= 0 && value < 10 {
print("0以上10未満")
} else {
print("それ以外")
}
switch文
Swiftのswitch
はかなり汎用性が高く、数多くの書き方があります。
今回は基本となる書き方のみを紹介します。
基本構文は以下となります。
switch 値 or 式 {
case 値1:
値1の場合の処理
case 値2:
値2の場合の処理
...
default:
caseに当てはまらなかった場合の処理
}
具体的な実装は以下のようになります。
let value = 0
switch value {
case 0:
print("0です。")
case 1:
print("1です")
case 2:
print("2です")
default:
print("それ以外です")
}
このようにswitch
に与えた値value
に対して判定を行ないます。
if
との違いは条件ではなく値そのものに対する判定ということです。
当てはまるcase
から次のcase
までの間の処理が実行されます。
それ以外の処理は実行されません。
(他言語を触った人からするとbreak
がないのに次が実行されないことに違和感があるかもしれません。Swiftではbreak
は不要です。)
switch
に与える型は値の判定ができれば構いません。
とはいえ値の判定ができるのは数値型、文字列型、列挙型くらいで、現実的に使うのはこのあたりの型になるかとは想います。
1つのcase
に複数指定することも可能です。
let club = "野球"
switch club {
case "野球", "サッカー", "テニス":
print("運動部です")
case "吹奏楽", "茶道":
print("文化部です")
default:
print("未定義の部活です")
}
また数値の場合(数値1…数値2)
とすることで範囲によって条件を分岐させることも可能です。
let score = 80
switch score {
case (80...100):
print("優")
case (70...79):
print("良")
case (60...69):
print("可")
case (0...59):
print("不可")
default:
print("未定義")
}
以上のように値に対して判定を行ない、当てはまるcase
の処理を実行するのがswitch
文です。
いくつか例を紹介しましたがまだまだ使い方は色々あります。
条件判定する際は調べてみてください。
最後に
今回はプログラミングする上では欠かせない条件分岐の方法としてif
とswitch
を紹介しました。
どちらも似たようなものですね。
実際switch
をif~else if~...
と条件分岐を行っても同じ結果が得られます。
プログラムを管理しやすい方、ミスが起きにくい方を状況に応じて選んでいきたいところです。
今回の内容は以上です。
本記事とは別でプログラミング未経験からiOSアプリ開発が行えるようになることを目的とした記事を連載しています。
連載は以下にまとめていますのでそちらも是非もご覧ください。
http://naoyalog.com/