開発現場でよく使うSwiftのif文の条件分岐をまとめました

19/03/03 17:08:13     19/04/08 09:44:51

Swiftのif

if文はプログラミングの基本概念の一つで、プログラミングを勉強し始めたら割と最初の方に勉強する内容です。

Swiftでも例外ではなく、if文がないとプログラミングできないと言っても過言ではないでしょう。

Swiftのif文の書き方

Swiftのif文の基本構文は以下です。

if 条件式 {
    条件式が真(true)の場合の処理
}

これがSwiftのif文のもっとも基本的な構文です。また他のプログラミング言語同様に、else ifを指定することも可能です。

構文は以下になります。

if 条件式1 {
    条件式1が真(true)の場合の処理
} else if 条件式2 {
    条件式2が真(true)の場合の処理
} else {
    どの条件にも一致しなかった場合に実行する処理
}

他のプログラミング言語の経験がある方ならすぐに理解できるかと思います。

まずif文の条件に当てはまるかどうかを判定し、if文の条件に当てはまればif文のなかの処理を実行します。当てはまらない場合は次にelse if文の条件に合致するかどうかを判定します。

else if文の条件に合致すればelse if文のなかの処理が実行され、当てはまらない場合はelse文に移行します。else文では条件判定を行わず、処理が実行されます。

if文で使用する演算子

if文の条件式はシステムによって様々ですが、まずは比較演算子と論理演算子で試してみるのがおすすめです。

他のプログラミング言語の経験がある方にとっては初歩的な内容になってしまいますが、改めて紹介しておきます。

比較演算子

比較演算子には以下のようなものがあります。

a == b :aとbが等しい場合にtrue、等しくなければfalse
a != b :aとbが等しくなければtrue、等しい場合はfalse
a > b :aがbより大きい場合にtrue、aとbが等しいまたはbが大きい場合はfalse
a < b :aよりbが大きい場合にtrue、aとbが等しいまたはaが大きい場合はfalse
a >= b :aとbが等しいまたはaがbより大きければtrue、aがbより小さければfalse
a <= b :aとbが等しいまたはaがbより小さければtrue、aがbより大きければfalse

論理演算子

論理演算子には以下のようなものがあります。

条件式1 && 条件式2 :条件式1と条件式2が成り立てばtrue、どちらかが成り立たない場合はfalse
条件式1 || 条件式2 :条件式1と条件式2のどちらかが成り立てばtrue、両方とも成り立たない場合はfalse

if文の実践的な使い方

if文の基本事項は上記の通りです。次に、サンプルコードで実際の使用方法を確認します。

var num = 5
if ( num > 10 ) {
    print("10以上です")
} else {
    print("10未満です")
}

上記のコードを実行すると以下のようにコンソール出力されます。

10未満です

また、if文のカッコを省略して以下のように記述することも可能です。

var num = 5
if num > 10 {
    print("10以上です")
} else {
    print("10未満です")
}

else ifを含めると以下のようになります。

var num = 5

if ( num > 10 ) {
    print("10以上です")
} else if ( num < 10 ) {
    print("10未満です")
} else {
    print("それ以外");
}

次に、二つの条件式を判定するためのサンプルコードは以下です。

var num1 = 20
var num2 = 50

if ( num1 > 10 && num2 > 10) {
    print("num1とnum2は10以上です")
} else {
    print("num1またはnum2は10未満です")
}

上記のコードを実行すると、以下のようにコンソール出力されます。

num1とnum2は10以上です

ここまでは基本的なコードばかりで、他のプログラミング言語経験のある方ならざっと目を通せばすぐに理解できる内容だったかと思います。

次に、Swiftならではのif文について解説していきます。

if文でnilの判定をする

Swiftにはオプショナル型というものがあり、これはnilを許容できる変数のことです。Swiftは安全性の高い言語で最大限バグを減らす工夫が凝らされています。nilを許容する変数とそうでない変数をわけているのもそのためで、オプショナル型はバグの発生を抑えるために用意されています。

そして、このオプショナル型のnil判定に使われるのがif letです。

if letのサンプルコードは以下です。

var cnt1: Int?
if let num = cnt1 {
    print("num:\(num)")
} else {
    print("num:値は空です")
}
var cnt2: Int? = 100
if var num = cnt2 {
    num += 100
    print("num:\(num)")
}

上記のサンプルコードを実行すると、以下のようにコンソール出力されます。

num:値は空です
num:200

if letを使用するとnilの場合とそうでない場合で処理を分けることができます。またif文だけでなくSwitch文も合わせて覚えておくと便利です。

Switch文の使い方

if文は条件を二通りずつに分岐させるものでしたが、Switch文は複数のケースを一気に指定することができます。

サンプルコードは以下です。

switch 値や式 {
case 値1:
    //処理
case 値2:
    //処理
case 値3:
    //処理
default:
    //処理
}

このように、Switch文では複数のcaseを用意し、当てはまるcaseが実行されます。Switch文自体は他のプログラミング言語にもありますが、SwiftのSwitch文には大きな特徴があります。

それは、breakを書かなくても自動的にcase文を実行したら処理を抜けるということです。多くのプログラミング言語はcase文のなかにbreakを書かないと処理を抜けずに後ろのcase文やdefaultを実行してしまいます。

逆にcase文を実行した後に処理を抜けたくない場合、fallthroughを使用する必要があります。

サンプルコードは以下です。

var num = 10
switch num {
    case 10:
        print("10です。")
        num += 10
        fallthrough
    case 20:
        print("20です。")
        num += 20
    case 40:
        print("40です。")

default:
    print("その他の値")
}

上記のコードを実行すると、以下のようにコンソール出力されます。

10です。
20です。

最初のcase文にfallthroughが書かれているため、後続のcase文が実行されています。またcase 20のなかにはfallthroughが書かれていないため、後ろのcase文は実行されません。

case 20が実行されたタイミングでnumの値は40になっていますが、条件に合致していてもそもそもcase 40は条件判定されずに終了しているからです。

まとめ

以上、if文の条件分岐や合わせてSwitch文による条件分岐について解説してきました。

開発現場でどれをよく使用するかについてですが、すべてよく使います。if、if else、else、Switch、すべて使用し、また演算子もよく使います。

なのでどれか特定のものに絞るのではなく、条件分岐についてはすべて把握しておいた方が良いでしょう。

とはいえ、条件分岐は頻出なのでコードを書いていれば勝手に覚えるかと思います。

案件量が豊富なアルマサーチ

アルマサーチ

最後に、アルマサーチのご紹介!

アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。

アルマサーチが選ばれる理由

  1. 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
  2. 優秀なコンサルタント陣。
  3. 案件に参画後もしっかりサポート。

豊富な案件量

フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。

優秀なコンサルタント陣

技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。

案件に参画後もしっかりサポート

常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。

相談する

▼Swift関連の記事一覧
1, 【Swiftのフリーランス案件情報付き】仕事やエンジニアの将来性・学習方法!
2, 繰り返し処理に使えるSwiftのfor文とfor-in文の便利な使い方まとめ
3, 条件分岐に便利なSwiftのSwitch文の使い方まとめ
4, アプリ開発でよく使うSwiftの4つの文法を解説します
5, Swiftのoptional型を使いこなすための7つのポイント
6, Swiftで文字列を扱うためのstring型の使い方
7, Swiftでの配列の宣言・初期化・代入・参照の方法まとめ
8, 実際の開発現場でのSwiftの変数・定数の使われ方を解説します
9, Swiftでif let文を使って出来ることとguard letの使い分けに関して
10,(この記事)開発現場でよく使うSwiftのif文の条件分岐をまとめました
11, SwiftにおけるTupleの使い方とわかりやすく解説します
12, 初心者にオススメのSwiftのサンプルコードをまとめてみました
13, SwiftのString、Int、Doubleの型の変換方法をまとめました
14, 開発現場で役に立つSwiftのクロージャの使い方
15, Swiftでwhileを使って上手に繰り返し処理を行おう
16, Swiftで文字列の長さをチェックするのにlengthを使ってみよう
17, Swiftのdictionaryの使い方と初期化方法をまとめました
18, Swiftの値渡しと参照渡しに関するまとめ
19, Swiftで参照渡ししたい時のinoutの便利な使い方
20, Swiftでfor-in文でindexを使いたい時の方法まとめ
21, Swiftでのクラスとstruct(構造体)の使い分けを解説します

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する