Swift の if 文
プログラミングで、ある条件によって違うコードを実行したい時には if 文をよく使います。
ここでは Swift の if 文 についてご説明します。
Swift の if 文の基本
if 文は条件式が true(真)になる時に続くコードブロックを実行します。
Swift の if 文の構文は次の通りです。
if [条件式A] {
[コードブロックA]
} else if [条件式B] {
[コードブロックB]
} else if [条件式C] {
[コードブロックC]
} else {
[コードブロックD]
}
ここで、else if や else は必須ではなく、else if は何回続けてもかまいません。
まずは if の [条件式A] を評価し、true であれば、[コードブロックA] を実行します。
if の条件式 が false の時は上から順番に else if の条件式を評価していき、最初に true になった箇所のコードブロックを実行します。
true になる条件式があった場合は、そこのコードブロックが実行され、それ以降に条件式にも true になるものがあったとしても、そのコードブロックは実行されません。
どの条件も false だった時は else のコードブロックが実行されます。
それでは if 文を使ってみましょう。
次の if 文を実行すると結果はどうなるでしょうか。
var a = 4
var msg: String
if a == 5 {
msg = "a は 5 です。"
} else if a != 4 {
msg = "a は 4 ではありません。"
} else if a > 2 {
msg = "a は 2 より大きいです。"
} else {
msg = "上の条件どれにもあてはまりません。"
}
print(msg)
上から順番に条件式を評価していき、a == 5 は false、a != 4 も false、a > 2 で true になるので、else if a > 2 に続くコード msg = "a は 2 より大きいです。" が実行されます。
print(msg) で msg を出力してみると、「a は 2 より大きいです。」が出力されていますね。
if 文 - 複数の条件式
&& (and) や || (or) 演算子を使って、複数の条件式を合わせて判断することもできます。
例えば、a が 4 ではなくて、6 より大きい時に何かを実行したいのであれば、and を使って次のようにします。
var a = 7
var msg: String
if a != 4 && a > 6 {
msg = "a は 4 ではなくて、6 より大きいです。"
} else {
msg = "a は 4 か、6 以下です。"
}
print(msg)
7 は 4 ではなくて、6 より大きいので if の条件式が true になり、実行結果は次のようになります。
a を 5 に変更して再実行してみましょう。
今度は a != 4 は true ですが、 a > 6 が false になり、&& 演算子を使うと、条件式が両方 true の時のみ if のコードブロックが実行されるので、else のコードブロックが実行されています。
Swift の三項条件演算子
三項条件演算子 (ternary conditional operator) は if 文を使わずに if - else と同じようなコードがより簡潔に書けるシンタックスです。
Swift の三項条件演算子 は ? : を使って以下のように書きます。
[条件式] ? [条件式が true の時の値] : [条件式が false の時の値]
例えば、次のようなコードがあります。
var a = 4
var msg: String
if a == 5 {
msg = "a は 5 です。"
} else {
msg = "a は 5 ではありません。"
}
print(msg)
これを三項条件演算子を使って書き換えると、以下のようになります。
var a = 4
var msg: String
msg = a == 5 ? "a は 5 です。" : "a は 5 ではありません。"
print(msg)
実行してみると a == 5 は false なので msg に 「a は 5 ではありません。」が代入されていますね。
以上、Swift の if 文 についてご説明しました。