Swift Language
조건부
수색…
소개
if, else if 및 else와 같은 키워드를 포함하는 조건식은 부울 조건에 따라 다른 동작을 수행 할 수있는 기능을 Swift 프로그램에 제공합니다 (True 또는 False). 이 절에서는 Swift 조건부, 부울 논리 및 삼항 구문의 사용에 대해 설명합니다.
비고
조건문에 대한 자세한 내용은 Swift 프로그래밍 언어를 참조하십시오.
가드 사용
Guard는 조건을 검사하고 false이면 분기로 들어갑니다. Guard check branch는 return
, break
또는 continue
(해당되는 경우)를 통해 둘러싼 블록을 떠나야합니다. 그렇게하지 않으면 컴파일러 오류가 발생합니다. 이것은 guard
가 쓰여졌을 때 흐름이 우연히 계속되도록하는 것이 불가능하다는 장점이 있습니다 ( if
로 가능한 if
).
가드를 사용하면 중첩 수준을 낮게 유지할 수 있으므로 대개 코드의 가독성이 향상됩니다.
func printNum(num: Int) {
guard num == 10 else {
print("num is not 10")
return
}
print("num is 10")
}
Guard는 선택 항목에 값이 있는지 확인한 다음 외부 범위에서 값을 푸십시오.
func printOptionalNum(num: Int?) {
guard let unwrappedNum = num else {
print("num does not exist")
return
}
print(unwrappedNum)
}
Guard는 선택적 언 래핑 및 조건 확인을 결합 할 수 있습니다. where
keyword :
func printOptionalNum(num: Int?) {
guard let unwrappedNum = num, unwrappedNum == 10 else {
print("num does not exist or is not 10")
return
}
print(unwrappedNum)
}
기본 조건문 : if 문
if
문 은 Bool 조건이 true
인지 여부를 확인합니다.
let num = 10
if num == 10 {
// Code inside this block only executes if the condition was true.
print("num is 10")
}
let condition = num == 10 // condition's type is Bool
if condition {
print("num is 10")
}
if
문은 else if
조건을 테스트하고 대체를 제공 할 수있는 else if
및 else
블록을 허용합니다.
let num = 10
if num < 10 { // Execute the following code if the first condition is true.
print("num is less than 10")
} else if num == 10 { // Or, if not, check the next condition...
print("num is 10")
} else { // If all else fails...
print("all other conditions were false, so num is greater than 10")
}
기본 연산자 (예 : &&
및 ||
여러 조건에 사용할 수 있습니다.
논리 AND 연산자
let num = 10
let str = "Hi"
if num == 10 && str == "Hi" {
print("num is 10, AND str is \"Hi\"")
}
num == 10
이 false이면 두 번째 값은 평가되지 않습니다. 이것을 단락 평가라고합니다.
논리합 연산자
if num == 10 || str == "Hi" {
print("num is 10, or str is \"Hi\")
}
num == 10
이 참이면 두 번째 값은 평가되지 않습니다.
논리 NOT 연산자
if !str.isEmpty {
print("str is not empty")
}
선택적 바인딩 및 "where"절
선택 사항 은 대부분의 표현식에서 사용되기 전에 언 래핑 되어야합니다. if let
이 선택적 바인딩 이고, 옵션 값이 nil
이 아닌 경우 성공합니다.
let num: Int? = 10 // or: let num: Int? = nil
if let unwrappedNum = num {
// num has type Int?; unwrappedNum has type Int
print("num was not nil: \(unwrappedNum + 1)")
} else {
print("num was nil")
}
새로 바인딩 된 변수에 동일한 이름 을 다시 사용하여 원본을 섀도 잉 할 수 있습니다.
// num originally has type Int?
if let num = num {
// num has type Int inside this block
}
여러 개의 선택적 바인딩을 쉼표 ( ,
)와 결합하십시오.
if let unwrappedNum = num, let unwrappedStr = str {
// Do something with unwrappedNum & unwrappedStr
} else if let unwrappedNum = num {
// Do something with unwrappedNum
} else {
// num was nil
}
where
절을 사용하여 선택적 바인딩 후에 추가 제약 조건을 적용합니다.
if let unwrappedNum = num where unwrappedNum % 2 == 0 {
print("num is non-nil, and it's an even number")
}
당신이 모험을 느끼는 경우, 임의의 수의 선택적 바인딩과 where
절을 삽입하십시오 :
if let num = num // num must be non-nil
where num % 2 == 1, // num must be odd
let str = str, // str must be non-nil
let firstChar = str.characters.first // str must also be non-empty
where firstChar != "x" // the first character must not be "x"
{
// all bindings & conditions succeeded!
}
스위프트 3에서 절을 대체되었습니다 ( where
SE-0099 ) : 단순히 다른를 사용 ,
옵션 바인딩 및 부울 조건을 분리 할 수 있습니다.
if let unwrappedNum = num, unwrappedNum % 2 == 0 {
print("num is non-nil, and it's an even number")
}
if let num = num, // num must be non-nil
num % 2 == 1, // num must be odd
let str = str, // str must be non-nil
let firstChar = str.characters.first, // str must also be non-empty
firstChar != "x" // the first character must not be "x"
{
// all bindings & conditions succeeded!
}
삼항 연산자
조건은 삼항 연산자를 사용하여 단일 행에서 평가할 수도 있습니다.
두 변수의 최소값과 최대 값을 결정하려면 다음과 같이 if 문을 사용할 수 있습니다.
let a = 5
let b = 10
let min: Int
if a < b {
min = a
} else {
min = b
}
let max: Int
if a > b {
max = a
} else {
max = b
}
삼항 조건부 연산자는 조건을 취하여 조건이 참인지 거짓인지에 따라 두 값 중 하나를 반환합니다. 구문은 다음과 같습니다. 이는 다음 표현식을 갖는 것과 같습니다.
(<CONDITION>) ? <TRUE VALUE> : <FALSE VALUE>
위의 코드는 다음과 같이 삼항 조건부 연산자를 사용하여 다시 작성할 수 있습니다.
let a = 5
let b = 10
let min = a < b ? a : b
let max = a > b ? a : b
첫 번째 예에서 조건은 a <b입니다. 이것이 사실이라면 min에 할당 된 결과는 a로됩니다. false 인 경우, 결과는 b의 값이됩니다.
참고 : 두 숫자 중 큰 수 또는 작은 수를 찾는 것이 일반적인 작업이므로 Swift 표준 라이브러리는이 목적을 위해 최대 및 최소의 두 가지 기능을 제공합니다.
무 집착 연산자
nil-coalescing 연산자 <OPTIONAL> ?? <DEFAULT VALUE>
는 값이 포함되어 있으면 <OPTIONAL>
<OPTIONAL> ?? <DEFAULT VALUE>
래핑 해제하거나 nil 인 경우 <DEFAULT VALUE>
반환합니다. <OPTIONAL>
은 항상 선택적 형식입니다. <DEFAULT VALUE>
는 <OPTIONAL>
안에 저장된 유형과 일치해야합니다.
nil-coalescing 연산자는 삼항 연산자를 사용하는 아래 코드에서 생략 할 수 있습니다.
a != nil ? a! : b
아래 코드를 통해이를 확인할 수 있습니다.
(a ?? b) == (a != nil ? a! : b) // ouputs true
예를 들어 시간
let defaultSpeed:String = "Slow"
var userEnteredSpeed:String? = nil
print(userEnteredSpeed ?? defaultSpeed) // ouputs "Slow"
userEnteredSpeed = "Fast"
print(userEnteredSpeed ?? defaultSpeed) // ouputs "Fast"
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow