はじめに

プログラミングをしているとある条件を満たした時に、特別な処理を行いたい時があります。その時にif文やswitch文を利用して条件分岐を行います。 今回はSwiftの条件分岐について説明します。

if文

if文は簡単な条件分岐でよく利用されます。よく利用されるので基本は確実におさえておきましょう!

 

if文だけの構文

if文の基本的な構文は以下のとおりになります。

if (条件式) {
    条件式を満たす場合はここの処理が実行される
}

条件式の括弧()は省略することができるので私は括弧を省略しています。

 

if文の例を以下に記載します。変数numが1の場合は中括弧{}の中の処理が行われ、変数msgに”変数numの値は1です”という文字列が格納されます。

var num = 1
var msg:String

if num == 1 {
    msg = "変数numの値は1です"
}

条件式は比較演算子を使って記述します。Swiftで使用できる比較演算子については以下の記事を参考にしてください。

演算子 – Swiftプログラミング入門5

 

比較演算子を使ったif文の記述例を記載します。

var a = 2
var b = 1
var msg1:String

if a > b {
    msg1 = "変数aは変数bより大きい"
}


var c = 1
var d = 2
var msg2:String

if c < d {
    msg2 = "変数cは変数dより小さい"
}

var e = 2
var f = 2
var msg3:String

if e >= f  {
    msg3 = "変数eは変数f以上"
}

var g = 2
var h = 3
var msg4:String

if e <= f  {
    msg4 = "変数gは変数h以下"
}

var i = 5
var j = 5
var msg5:String

if i == j  {
    msg5 = "変数iと変数jは等しい"
}

var k = 5
var l = 6
var msg6:String

if k != l  {
    msg5 = "変数kと変数lは等しくない"
}

 

以下のif文は条件式に文字列を使用しています。条件式には数値だけではなく、文字列も使用することができます。

var sex = "男"
var msg2:String

if sex == "男" {
    msg2 = "性別は男です"
}

 

以下のif文は論理演算子を使って複数の条件にしています。

var num2 = 30
var msg4:String

if num2 >= 20 && num2 < 30 {
    msg4 = "変数num2は20以上、かつ30未満です"
}

if num2 == 20 || num2 == 30 {
    msg4 = "変数num2の値は20または30です"
}

論理演算子については以下の記事を参考にしてください。

演算子 – Swiftプログラミング入門5

 

if 〜 elseの構文

条件式が不成立の場合でも特定の処理を行いたい場合があります。この場合はif 〜 else の構文を使用します。

if 条件式 {
    条件式が成立する場合はここが実行される
}
else {
    条件式が不成立の場合はここが実行される
}

 

以下はif 〜 else 構文の使用例です。 変数ageが20以上なので、変数msgには”成人しました。”の文字列が格納されます。

もし変数ageが20以上で無ければ、変数msgには”未成年です。”の文字列が格納されますね〜

var age = 20
var msg:String

if age >= 20 {
    msg = "成人しました。"
}
else {
    msg = "未成年です。"
}

 

if 〜 else ifの構文

複数の条件式を指定したい場合はif 〜 else ifの構文を使用します。else if文はいくつでも作成することができ3つ以上の条件式を記述することができます。

if 条件式1 {
    条件式1が成立した場合ここの処理が実行される
}
else if 条件式2 {
    条件式2が成立した場合ここの処理が実行される
}

 

以下の記述例では変数sexが”男”の場合は変数msg2に”性別は男です”の文字列が格納され、変数sexが”女”の場合は、変数msg2に”性別は女です”の文字列が格納されます。

var sex = "男"
var msg2:String

if sex == "男" {
    msg2 = "性別は男です"
}
else if sex == "女" {
    msg2 = "性別は女です"
}

 

if 〜 else if 〜 else と繋げることもできます。

if 条件式1 {
    条件式1が成立した場合はここの処理が実行される
}
else if 条件式2 {
    条件式2が成立した場合はここの処理が実行される
}
else {
    条件式1と条件式2共に不成立の場合はここの処理が実行される
}

 

以下がif 〜 else if 〜 else と繋げた記述例です。

var sex = "男"
var msg2:String

if sex == "男" {
    msg2 = "性別は男です"
}
else if sex == "女" {
    msg2 = "性別は女です"
}
else {
    msg2 = "性別は男でも女でもありません!?"
}

 

switch文

if文を使用すると条件が複雑になりそうな時にswitch文を使用するとプログラムがスッキリ見やすくなることがあります。if文では条件が複雑になりそうな場合はswitch文の使用を検討します。

 

swift文の基本構文

switch文の基本構文は以下のとおりになります。

switch 式 {
case 値1:
    式の値が値1の場合はここの処理が実行される
case 値2:
    式の値が値2の場合はここの処理が実行される
case 値3:
    式の値が値3の場合はここの処理が実行される
case 値4:
    式の値が値4の場合はここの処理が実行される
case 値5:
    式の値が値5の場合はここの処理が実行される
default:
    式の値が上記の値以外の場合はここの処理が実行される
}

 

 

以下にswitch文の使用例を記載します。式は数値、文字列どちらでも使用することができます。

var point = 50
var msg:String

switch point {
case 10:
    msg = "pointは10です"
case 20:
    msg = "pointは20です"
case 30:
    msg = "pointは30です"
case 40:
    msg = "pointは40です"
case 50:
    msg = "pointは50です"  //変数pointの値が50なのでここの処理が実行されます
default:
    msg = "pointは10〜50以外です"
}

var season = "春"
var msg2:String

switch season {
case "春":
    msg = "季節は春です"    //変数seasonの値が"春"なのでここの処理が実行されます
case "夏":
    msg = "季節は春です"
case "秋":
    msg = "季節は春です"
case "冬":
    msg = "季節は春です"
default:
    msg = "季節は春〜冬以外?!"
}

 

範囲指定の方法

値は「…」を利用することにより範囲指定を行うことができます。以下にswitch文で範囲指定を使用している記述例を記載します。

var test = 50
var msg:String

switch test {
case 1...34:    //変数testが1〜34の場合
    msg = "成績は赤点です"
case 35...50:   //変数testが35〜50の場合
    msg = "成績は可です"
case 51...70:   //変数testが51〜70の場合
    msg = "成績は良です"
case 71...100:  //変数testが71〜100の場合
    msg = "成績は優です"
default:   //上記の値以外の場合
    msg = "0点か100点より大きい点数?!"
}

 

まとめ

  • プログラミングである条件を満たした時に、特別な処理を行いたい時は条件分岐を行う
  • 条件分岐にはif文とswitch文がある
  • 簡単な条件分岐はif文を使用し、複雑な条件分岐になる場合はswitch文を使用する