【Swift】if文とif-else文

if文とは、条件式によって処理を分岐したい場合に使う構文で、もし〇〇だったらこの処理、もし〇〇じゃなかったら別の処理、どっちにも当てはまらない場合はこの処理、のように処理を分岐させたい場合に使う構文です。
条件式がtrueであれば、if文の処理が実行されて、falseであればそのif文の処理はスキップされます。

前回は 論理演算子 について記事を書きました。

今回は 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-elseコードimg

比較演算子を使った 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文 の条件は HP80 より大きかったら実行されます。( 80 は含まれない )
2 つ目の if文 の条件は HP60 以上であれば実行されます。( 60 も含まれる )
3 つ目の if文 の条件は HP30 以下であれば実行されます。( 30 も含まれる )
変数HP の値には 30 が代入されているので、当てはまっている 3 つ目( 1 番下 )の if文 のみ実行されて、他 2 つの if文 はスキップされます。

if-elseコードimg

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コードimg3

比較演算子を使った 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)の経験値をかくとく!”) が実行されます。

if-elseコードimg5

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!”)
が実行されます。

上記の例では 変数 jp3変数us2 が代入されています。
最初の if文 の条件式で true になるので print(“Japan Winner!”) が実行されます。

if-elseコードimg4

これで分岐を増やす事ができましたが、分岐の数が 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("不合格!")
}

変数kokugo60eigo80 が代入されています。


上の if文 は、kokugo の値が 80 以上かつ、eigo の値が 80 以上であれば実行されます。
&& は左辺と右辺の両方の値が true でなければ実行されないので、この if文 はスキップされて、else文 が実行されます。

下の if文 は、kokugo の値が 80 以上または、eigo の値が 80 以上であれば実行されます。
|| は左辺と右辺どちらかが true であれば実行されるので、この if文 の処理が実行されて、else文 はスキップされます。

if-elseコードimg6

以上 if文 と if-else文 についてでした。結構よく使う構文なので押さえておきたいポイントだと思います。

次回は for文 について書いていこうと思います。

実行環境

version
Xcode 14.2 (14C18)
Swift 5.2.4

公式ドキュメント

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/

【Swift】真理値型と比較演算子

前回は文字列型と文字列の型変換について記事を書きました。今回は真理値型と比較演算子について書いていこうと思います。
真理値型は真偽値型やBool型とも言われていて、真を表すtrueか偽を表すfalseかのどちらかの値をとる事が出来る型です。

前回は 文字列型と文字列の型変換 について記事を書きました。

今回は 真理値型と比較演算子 について書いていこうと思います。

真理値型とは

真理値型は、真偽値型や Bool型 とも言われていてを表す true か、を表す false かのどちらかの値をとる事が出来る型です。
プログラムの中で、ある条件や命題によって分岐して処理を分けたい時などに欠かせない型です。比較演算子と組み合わせて使うことで、例えばボタンの on/off 切り替えだったり、この条件であればこの処理、この条件でなければ別の処理、みたいな使い方も出来ます。まずは比較演算子の種類を見ていきましょう。

比較演算子の種類

a の値と b の値を比較した時の例

比較演算子truefalse
>a > ba が b より大きいa が b より小さい
<a < ba が b より小さいa が b より大きい
>=a >= ba が b 以上a が b 以下
<=a <= ba が b 以下a が b 以上
==a == ba が b と等しいa が b と等しくない
!=a != ba が b と等しくないa が b と等しい

上記の条件によって truefalse の値が返ってきます。

Bool型の宣言例と比較演算子を使った例

Bool型 の宣言と比較演算子を使って比較してみます。

> (大なり)

//Bool型の宣言例
var trueOrFalse:Bool
print(type(of: trueOrFalse)) //Bool

var a = 1
var b = 2

// >
trueOrFalse = a > b
print(trueOrFalse) //false

a > b
ab より大きければ true、ab より小さければ false になります。この場合は ab より小さいので結果は false になります。

< (小なり)

var trueOrFalse:Bool
print(type(of: trueOrFalse)) //Bool

var a = 1
var b = 2

// <
trueOrFalse = a < b
print(trueOrFalse) //true

a < b
ab より小さければ true、ab より大きければ false になります。この場合は ab より小さいので結果は true になります。

>= (大なりイコール)

var trueOrFalse:Bool
print(type(of: trueOrFalse)) //Bool

var a = 1
var b = 2

// >=
trueOrFalse = a >= b
print(trueOrFalse) //false

a >= b
ab 以上だったら true、ab 以下だったら false になります。この場合は ab 以下なので結果は false になります。

<= (小なりイコール)

var trueOrFalse:Bool
print(type(of: trueOrFalse)) //Bool

var a = 1
var b = 2

// <=
trueOrFalse = a <= b
print(trueOrFalse) //true

a <= b
ab 以下だったら true、ab 以上だったら false になります。この場合は ab 以下なので結果は true になります。

== (イコール)

var trueOrFalse:Bool
print(type(of: trueOrFalse)) //Bool

var a = 1
var b = 2

// ==
trueOrFalse = a == b
print(trueOrFalse) //false

a == b
ab と等しかったら true、ab と等しくなかったら false になります。この場合は ab と等しくないので結果は false になります。

!= (ノットイコール)

var trueOrFalse:Bool
print(type(of: trueOrFalse)) //Bool

var a = 1
var b = 2

// !=
trueOrFalse = a != b
print(trueOrFalse) //true

a != b
ab と等しくなかったら true、ab と等しかったら false になります。この場合は ab と等しくないので結果は true になります。

Boolコードimg

以上の 6 種類がよく使われる 比較演算子 かと思います。

次回は 論理演算子 について書いていこうと思います。

実行環境

version
Xcode 14.2 (14C18)
Swift 5.2.4

公式ドキュメント

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/