スライドショー

【Swift入門】Switch文による条件分岐をマスターしよう!

こんにちは!フリーエンジニアのヤマシタです。

プログラムにおいて、処理を条件によって分岐させることはよくあります。

SwiftにもC言語やJavaのように分岐処理を行うにはif文とSwitch文が使用できます。

この記事では、

・Switch文とは
・Switch文の使い方

という基本的なSwitch文の解説から、

・fallthroughでcase文を続行する方法
・複数の条件を指定する方法
・範囲を指定する方法
・Tuple(タプル)を指定する方法

などの応用的な使い方に関しても解説していきます。

今回はそんなSwitch文の使い方についてわかりやすく解説します!

※この記事ではSwift3.1を使用しています。

Switch文とは

Switch文とは、if文のように式の値に応じて分岐処理を行うための文です。

Switch文はif文と異なりcaseで条件となる値や変数をいくつか指定して、一致するcase文の処理を実行します。

書き方:

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

switchの後に判定を行うための値や式を記述します。

続くcaseでswitchで指定した値や式とマッチした場合は、そのcaseの処理が実行されます。

Switch文の使い方

ここではSwitch文の基本的な使い方を見ていきましょう!

基本的な使い方

以下にSwitch文を使用して、変数の値を判断する簡単なサンプルを紹介します。

サンプルプログラム1

var score = 70

switch score {
  case 100:
    print("100です。")

  case 70:
    print("70です。")

  case 40:
    print("40です。")

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

実行結果:

70です。

switchで指定した変数scoreには70が格納されているので「case 70」でマッチして、そのcaseの処理が実行されます。

また、以下のようにswitchの判定を式にすることもできます。

サンプルプログラム2

var score = 70

switch score + 30 {
  case 100:
    print("100です。")

  case 70:
    print("70です。")

  case 40:
    print("40です。")

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

実行結果:

100です。

Switch文の応用的な使い方

fallthroughでcase文を続行する

Objective-Cではcase処理を抜けるためには、breakを指定する必要がありましたが、Swiftのswitchでは不要になりました。

そのため、マッチしたcase処理を実行したあとに、意図的に次のcase処理を実行したい場合にはfallthroughを指定します。

サンプルプログラム

var num = 10

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

  case 40:
    print("40です。")

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

実行結果:

10です。
20です。

このようにfallthroughを指定すれば、次のcase文が実行されることがわかりますね!

複数の条件を指定する

switchの後の条件に,(コンマ)で区切って複数の条件を指定することができます。

サンプルプログラム

let str = "samurai"

switch str {
  case "samurai","engineer":
  print(str)
default:
  print("その他の値")
}

実行結果:

samurai

範囲を指定する

caseでの条件は(数値1…数値2)と指定することで、その範囲の処理で分岐することができます。

サンプルプログラム

let score = 70

switch score {
  case (90...100):
    print("90-100の範囲")

  case (50...89):
    print("50-89の範囲")

  case (1...49):
    print("1-49の範囲")

default:
    print("0")
}

実行結果:

50-89の範囲

Tupleを指定する

Tuple(タプル)は配列やディクショナリのように複数の値を保持することができます。

Switch文ではTubleを利用して分岐を行うことが可能です。

サンプルプログラム

let str = ("samurai", "engineer")

switch str {
  case ("samurai", ""):
    print("samurai")

  case ("", "engineer"):
    print("engineer")

  case ("samurai","engineer"):
    print("samurai engineer")

default:
    print("それ以外")
}

実行結果:

samurai engineer

まとめ

ここではSwitch文について、

・Switch文とは
・Switch文の使い方
・fallthroughでcase文を続行する方法
・複数の条件を指定する方法
・範囲を指定する方法
・Tuple(タプル)を指定する方法

などのさまざまな使い方について解説しました。

Switch文はプログラムでよく使用する条件式ですので、使い方はよく理解しておきましょう!

もしSwitch文の使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。