Swiftでのif文の使い方です。
Swift 4.1
Xcode 9.4.1
Xcode 9.4.1
if 文
if文は比較して真偽(true/false)を判定しますが、そこで演算子を使います。演算子には以下のようなものが主に使われます。
- a > b
- aがbより大きい:true
- aとbが等しい、またはbが大きい:false
- a < b
- aよりbが大きい:true
- aとbが等しい、またはaが大きい:false
- a == b
- aとbが等しい:true
- 等しいくない:false
- a != b
- aとbが等しくない:true
- aとbが等しい:false
- a >= b
- aとbが等しい、またはaがbより大きい:true
- aがbより小さい:false
- a <= b
- aとbが等しい、またはaがbより小さい:true
- aがbより大きい:false
数値の比較
if文、シンプルな条件分岐の書き方、大きいかどうかの判定
1 2 3 4 5 6 7 8 9 |
// a > b let a = 100 if a > 10 { print("aは10よりも大きい") } // 結果: // aは10よりも大きい |
条件の真偽の両方を判定する場合はelseを追加します
1 2 3 4 5 6 7 8 9 10 11 12 |
// a < b let b = 100 if b < 20 { print("bは20よりも小さい") } else{ print("bは20と同じか20よりも大きい") } // 結果: // bは20と同じか20よりも大きい |
大小を比較するだけでなく、同じか否かの判定もできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// a == b let c = 100 let d = 100 if c == d { print("cとdは等しい") } else{ print("cとdは等しくない") } // 結果: // cとdは等しい |
否定の真偽判定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// a != b let e = 10 let f = 20 if e != f { print("eとfは等しくない") } else{ print("eとfは等しい") } // 結果: // eとfは等しくない |
等しいか大きいかの判定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// a >= b let g = 100 let h = 20 if g >= h { print("gとhが等しいかgがhより大きい") } else{ print("gはhより小さい") } // 結果: // gとhが等しいかgがhより大きい |
等しいか小さいかの判定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// a <= b let i = 10 let j = 20 if i <= j { print("iはjと等しいかiがjより小さい") } else{ print("iはjより大きい") } // 結果: // iはjと等しいかiがjより小さい |
これら数値判定は、比較する数値の型があっていないといけません。
例えば、異なる型の比較ではエラーとなります。
Double型をFloat型に変換すると比較することができます。
1 2 3 4 5 6 7 8 9 |
let aa: Float = 10 let bb: Double = 20 if aa != Float(bb) { print("aaとbbは等しくない") } // 結果: // aaとbbは等しくない |
型変換は以下を参考にしてください。
https://i-app-tec.com/ios/int-string-double.html
文字列の比較
文字列の比較は Objective-C ではisEqualToString:を使っていましたが、Swiftでは
数値の比較と同じように == でできます。
1 2 3 4 5 6 7 |
let mojiA = "hoge" if mojiA == "hoge" { print("同じ文字列") } // 結果: // 同じ文字列 |
異なる文字列かどうかの比較は != を使います
1 2 3 4 5 |
let mojiA = "hoge" if mojiA != "hage" { print("異なる文字列") } |
大小の比較 < > はどうでしょうか
1 2 3 4 5 6 7 8 9 10 11 12 |
let mojiB = "abc" let mojiC = "abe" if mojiB > mojiC { print("abc > abe") } else if mojiB < mojiC { print("abc < abe") } // 結果: // abc < abe |
abcの方がabeよりも小さいという判定です。
これは、文字を数値としてコンピュータでは扱うためで、あくまで数値として比較しているからです。