スライドショー

【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

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説