前回は 論理演算子 について記事を書きました。
今回は if文 と if-else文 について書いていこうと思います。
if文とは
if文 とは、条件式によって処理を分岐したい場合に使う構文で、もし〇〇だったらこの処理、もし〇〇じゃなかったら別の処理、どっちにも当てはまらない場合はこの処理、のように処理を分岐させたい場合に使う構文です。
条件式が true であれば、if文 の処理が実行されて、false であればその if文 の処理はスキップされます。
if文の書式
if文 は、もしそうであれば( Bool値 が true であれば )この処理を実行します。という構文です。
Bool値 が false だった場合 if文 はスキップされます。
if Bool値、または条件式 {
Bool値、条件式の結果がtrueであればこの中の処理が実行される
trueでなければこのif文はスキップされる
}
if文 は頭に、if キーワードを付けます。
if文のを使った例
//if文の書き方例
var a:Bool = true
var b:Bool = false
if a {
print("あいうえお") //aはtrueなのでこのif文の処理が実行されます
}
if b {
print("かきくけこ") //bはfalseなのでこのif文はスキップされます
}
比較演算子を使った if文
書式
var a = 1
var b = 2
if a > b {
aとbの条件式の結果がtrueであればここの処理が実行されます
}
比較演算子 についてはこちらの記事で紹介しています。
比較演算子を使った if文 の例
//比較演算子を使ったif文の例
var HP:Int = 30 //好きな整数を代入してください
//もしHPが80より大きかったらこのif文は実行されます(80は含まれない)
if HP > 80 {
print("ガンガンいこうぜ")
}
//もしHPが60以上であればこのif文は実行されます(60も含まれる)
if HP >= 60 {
print("じゅもんつかうな")
}
//もしHPが30以下であればこのif文は実行されます(30も含まれる)
if HP <= 30 {
print("いのちだいじに")
}
Int型 の 変数HP には 30 が代入されています。
1 つ目の if文 の条件は HP が 80 より大きかったら実行されます。( 80 は含まれない )
2 つ目の if文 の条件は HP が 60 以上であれば実行されます。( 60 も含まれる )
3 つ目の if文 の条件は HP が 30 以下であれば実行されます。( 30 も含まれる )
変数HP の値には 30 が代入されているので、当てはまっている 3 つ目( 1 番下 )の if文 のみ実行されて、他 2 つの if文 はスキップされます。
if-else文
if-else文 は、if文 の Bool値 、または条件式が false だった場合 if文 の処理はスキップして、else文 の処理を実行するという構文です。
if-else文 の書式
if Bool値、または条件式 {
Bool値、または条件式がtrueであればここの処理が実行されます
} else {
Bool値、または条件式がfalseであればここの処理が実行されます
}
else文 は、else キーワードを書いて中括弧 { } の中に処理を書きます。
if-else文 を使った例
//if-else文の書き方例
var a:Bool = false
if a { //aがtrueであればこのif文の処理が実行されます
print("aの値はtrueです")
} else { //aがtrueでなければこのelse文の処理が実行されます
print("aの値はfalseです")
}
比較演算子を使った if-else文
書式
var a = 1
var b = 2
if a > b {
aとbの条件式がtrueであればここの処理が実行されます
} else {
aとbの条件式がfalseであればここの処理が実行されます
}
比較演算子 についてはこちらの記事で紹介しています。
比較演算子を使った if-else文 の例
//比較演算子を使ったif-else文の例
var point:Int = 99 //好きな整数を代入してください
//もしpointの値が100以上であればこのif文が実行されます
if point >= 100 {
print("レベルが1上がった!")
//そうでなかったら(pointの値が99以下だったら)このelse文が実行されます
} else {
print("\(point)の経験値をかくとく!")
}
Int型 の 変数point には 99 が代入されています。
point の値が 100 以上であれば true になり、if文 の処理が実行されます。
99 以下であれば false になるので、else文 の処理が実行されます。
上の例では print(“\(point)の経験値をかくとく!”) が実行されます。
point の値を 100 以上に変えると if文 の条件式は true になるので、
if文 の print(“レベルが1上がった!”) が実行されます。
else-if
分岐を増やしたい場面もよく出てくると思います。
そんな時は else-if を使うことで分岐を増やすことが出来ます。
if文 の後に else if キーワードを書いて その後に条件式を書き、{ } の中に処理を書きます。
書式
var a = 1
var b = 2
if a > b {
aとbの条件式がtrueであればここの処理が実行されます
} else if a < b {
上の条件式がfalseであれば、次にこのelse-if文が判定され、もしtrueであればここの処理が実行されます
} else {
上の条件式がどれもfalseであればここの処理が実行されます
}
else-if で分岐を増やす例
//else-ifで分岐を増やす例
var jp = 3
var us = 2
if jp > us { //jpの値がusより大きかったら
print("Japan Winner!")
} else if jp < us { //jpの値がusより小さかったら
print("USA Winner!")
} else { //上の条件式がどれもfalseであれば
print("Draw!")
}
まず最初の if文 の条件式が判定されて、false であれば次の else-if文 の条件式が判定されます。そして else-if文 の条件式も false だった場合に else文 が実行されるという流れになります。
jp の値が us の値より大きければ print(“Japan Winner!”) 、
jp の値が us の値より小さければ print(“USA Winner!”) 、
上の 2 つの条件式が false つまり同じ値であれば print(“Draw!”)
が実行されます。
上記の例では 変数 jp に 3 、変数us に 2 が代入されています。
最初の if文 の条件式で true になるので print(“Japan Winner!”) が実行されます。
これで分岐を増やす事ができましたが、分岐の数が 3 つや 4 つ、またはそれ以上になってくるととても読みづらくなってきます。そういう場合は if文 とは別に Switch文 という条件分岐出来る構文があるので、そっちの方がいい場合もあります。
Switch文 についてはまた今度書こうと思います。
比較演算子と論理演算子を使った if文
書式
var a = 1
var b = 2
var c = 3
//&&(and、かつ)
if a < b && b < c {
aがbより小さい かつ bがcより小さい場合にここの処理が実行される
}
//||(or、または)
if a > b || a < c {
aがbより大きい または aがcより小さい場合にここの処理が実行される
}
&& (and、かつ)演算子は、左辺と右辺の値がどっちも true の時のみ実行されます。
|| (or、または)演算子は、左辺と右辺の値どちらかが true であれば実行されます。
比較演算子 についてはこちらの記事で紹介しています。
論理演算子 についてはこちらの記事で紹介しています。
比較演算子と論理演算子を使った if文 の例
//比較演算子と論理演算子を使ったif文の例
var kokugo = 60
var eigo = 80
//&&
if kokugo >= 80 && eigo >= 80 { //kokugoが80以上かつ、eigoが80以上であればここの処理が実行されます
print("合格!")
} else { //上の条件から外れた場合はここの処理が実行されます
print("不合格!")
}
//||
if kokugo >= 80 || eigo >= 80 { //kokugoが80以上または、eigoが80以上であればここの処理が実行されます
print("合格!")
} else { //上の条件から外れた場合はここの処理が実行されます
print("不合格!")
}
変数kokugo に 60 、eigo に 80 が代入されています。
上の if文 は、kokugo の値が 80 以上かつ、eigo の値が 80 以上であれば実行されます。
&& は左辺と右辺の両方の値が true でなければ実行されないので、この if文 はスキップされて、else文 が実行されます。
下の if文 は、kokugo の値が 80 以上または、eigo の値が 80 以上であれば実行されます。
|| は左辺と右辺どちらかが true であれば実行されるので、この if文 の処理が実行されて、else文 はスキップされます。
以上 if文 と if-else文 についてでした。結構よく使う構文なので押さえておきたいポイントだと思います。
次回は for文 について書いていこうと思います。
実行環境
version |
---|
Xcode 14.2 (14C18) |
Swift 5.2.4 |
公式ドキュメント
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/