#制御フロー
4019 ワード
if SwiftにはC言語の は、論理判断時に特定の判断条件 を表示する必要がある. if文条件の を省略することができる.ただし を省略することはできない.
さんもくえんざん Swiftの を維持する.
三目を適切に運用することで、コードをより簡潔に書くことができます.
オプション判定は、オプションのコンテンツが の計算に参加することは許されない.したがって、実際の開発では、オプション可能なコンテンツが であるか否かを判断することがしばしば必要となる.
単一オプション判定
オプション条件判断まとめ とはならない.条件を追加するには、 を使用します.注意: なし
複数オプション判定
判断後に変数を修正する必要がある
guard である.プログラム作成時、条件検出後のコードは比較的複雑な である. guardを使用するメリット は、各値 を判断することができる.本当のコード論理部分では、ネストされた を省略している.
switch に限定されない. と判断することができる. は不要各 が必要である.はすべての可能な状況を処理することを保証しなければならない.そうしないと、コンパイラは直接エラーを報告し、処理しない条件は に置くことができる.各 を使用する必要がある. switchにおいても同様に を割り当てることができる.条件判断のみが望ましい場合、付与部分は を省略することができる.
概念がないtrue
/false
()
は、{}
はlet num = 200
if num < 10 {
print(" 10 ")
} else if num > 100 {
print(" 100 ")
} else {
print("10 ~ 100 ")
}
さんもくえんざん
演算はOCと一致するスタイルvar a = 10
var b = 20
let c = a > b ? a : b
print(c)
三目を適切に運用することで、コードをより簡潔に書くことができます.
オプション判定
nil
である可能性があるため、nil
であると、nil
単一オプション判定
let url = NSURL(string: "http://www.baidu.com")
//: 1: - , url ,
let request = NSURLRequest(URL: url!)
//: 2: - `!`
if url != nil {
let request = NSURLRequest(URL: url!)
}
//: 3: `if let`, , if ,u
if let u = url where u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
オプション条件判断
//: 1> swift if ,
if let u = url {
if u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
}
//: 2> where ,
if let u = url where u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
if let
は、&&
、||
等の条件を用いる判断where
句where
句インテリジェントヒント複数オプション判定
//: 3> `,`
let oName: String? = " "
let oNo: Int? = 100
if let name = oName {
if let no = oNo {
print(" :" + name + " : " + String(no))
}
}
if let name = oName, let no = oNo {
print(" :" + name + " : " + String(no))
}
判断後に変数を修正する必要がある
let oName: String? = " "
let oNum: Int? = 18
if var name = oName, num = oNum {
name = " "
num = 1
print(name, num)
}
guard
guard
はif let
とは逆の文法であり、Swift 2.0が発売したlet oName: String? = " "
let oNum: Int? = 18
guard let name = oName else {
print("name ")
return
}
guard let num = oNum else {
print("num ")
return
}
// ,name & num
print(name)
print(num)
switch
switch
は整数switch
は、
に対してbreak
case
の後に実行可能な文default
分岐のcase
で定義変数は現在のcase
でのみ有効であり、OCでは{}
let score = " "
switch score {
case " ":
let name = " "
print(name + "80~100 ")
case " ": print("70~80 ")
case " ": print("60~70 ")
case " ": print(" ")
default: break
}
where
句let point = CGPoint(x: 10, y: 10)
switch point {
case let p where p.x == 0 && p.y == 0:
print(" ")
case let p where p.x == 0:
print("Y ")
case let p where p.y == 0:
print("X ")
case let p where abs(p.x) == abs(p.y):
print(" ")
default:
print(" ")
}
switch score {
case _ where score > 80: print(" ")
case _ where score > 60: print(" ")
default: print(" ")
}