4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】条件分岐まとめ

Posted at

はじめに

最初は「条件分岐ってif文のことでしょ?」となめていたら、意外と色んな種類があり、「コード上ではよくみるけど、そういう意味、目的だったのか!」ていうのもあったので、今回はswiftの条件分岐についてまとめていこうと思います!

条件分岐の種類

  • if文
  • guard文
  • switch文
  • 三項条件演算子
  • Nil Coalescing演算子

if文

これは条件分岐の基本中の基本ですね!


if 条件式{
  処理
}else{
  処理
}

Swiftの場合はオプショナル変数をアンラップするためにnilチェックをよく行います。

//if文のnilチェック
var str: String!
if let str: String = str {
    //出力されない
    print(str)
}

var str2 = "Hello, World! "
if let str2:String = str2{
    //出力される
    print(str2)
}

if文のPoint!
Nilチェック、アンラップにif文もよく使われる

guard文

guard文は、エラーであれば早々に処理を行わないようにする「早期リターン」として使われます!

//guard文

func printNumber(_ num:Int){
    guard num>0 else {
        return
    }
    print(num)
}

printNumber(-1)
printNumber(0)
printNumber(5)

guard文のPoint!
・早期リターンでNilチェックとアンラップを同時に行える!
・elseとセット
・return か throwを必ず使用しなければならない
・guard文で定義した変数はguard文を抜けた後でも使用可能

出力
5

switch文

switch文はif文と異なり、全ての条件を網羅する必要があります。

var str = ""
//print(str)!

let test = "a"

//ノーマル
//break するためにbreakを書く必要がない
switch test {
case "a":
    print("正解!")
default:
    print("やったね!")
}

//出力「正解!」

//Fallthrough
switch test {
case "a":
    str += "case1:"
    fallthrough
default:
    str += "fallthroughしました!"
    print(str)
}

//出力「case1:fallthroughしました!」

// MARK: - 様々な型に対応してる

//例1:double型
let double = 2.5
switch double {
case 0..<5:
    print("Double型の例")
default:
    print("default")
}

//出力「Double型の例」

//例2:enum
enum Study {
    case A, B, C
}
//呼び出しかた
var math: Study
math = Study.A
math = .B  //型が分かっている場合はenum名は省略できる
switch math{
case .A:
    print("Aだよ")
case .B:
    print("Bだよ")
case .C:
    print("Cだよ")
}

//出力「Bだよ」

三項条件演算子

条件分岐と似た手法です!

書き方
条件式 ? trueの場合 : falseの場合


//三項条件演算子
var testBool:Bool = true
var result1 = testBool ? "trueだよ" : "falseだよ"
print(result1)

//出力
trueだよ

Nil Coalescing演算子

「??」を使うことにより、nilかどうかをチェックすることができます!
nilだった場合は、helloに"Nil Coalescing"が代入されます!

// Nil Coalescing演算子
let nilStr:String? = nil
let hello: String = nilStr ?? "Nil Coalescing"
print(hello)

//出力
Nil Coalescing

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?