【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文の使い方を忘れてしまったら、この記事を思い出してくださいね!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次