BESS(Back-End Study Space)
swift - 3. 문법(조건문) 본문
2020/12/15 - [iOS DEV/swift] - swift - 2. 문법(변수,상수,배열,사전)
▶ DEV TOOL
- Xcode 12.2
1. 조건문 (if-else, if let, switch)
// 조건문 ( if, switch )
// 타입 뒤에 물음표를 붙이면 optional 값(값이 없을 수도 있음을 의미)이 됨
// 빈 값이라든가, 의미 없는 값이라든가 하는 것도 결국 값이 있는 것이고, 값이 '없다'(nil, 기존의 null)는 것은 아직 값이 할당되지 않은 상태를 명시적으로 표시하는 방법이다.
var optionalName: String? = "LEE" //optionalName = LEE
var optionalNoName: String? //optionalNoName = nil
var greeting = "Hello!"
// if 문
var score = 70
if score > 50 {
print("pass")
}else{
print("fail")
}
// if let 문
// if let의 경우, optionalName이 nil이 아니면 true, nil이면 false값을 갖는다.
// 만약 nil이 아니면 해당 블록 내에서 name이라는 상수로 사용 가능하다는 의미
if let name1 = optionalName {
greeting = "Hello, \(name1)" //result
} else {
greeting = "Hello, Unknown"
}
if let name2 = optionalNoName {
greeting = "Hello, \(name2)"
} else {
greeting = "Hello, Unknown" //result
}
// ?? 연산자는 (value1 ?? value2)에서 value1이 nil인 경우, value2를 선택하고 value1이 nil이 아닌 경우 value1을 선택한다.
var value1: String? = nil
var value2: String = "value2"
var Qresult = "RESULT : \(value1 ?? value2)"
print(Qresult) //value1이 nil이므로 value2 선택
value1 = "value1"
value2 = "value2"
Qresult = "RESULT : \(value1 ?? value2)"
print(Qresult) //value1이 nil이 아니므로 value1 선택
// switch 문 : 하나의 case문이 종료되면 switch문이 종료되므로 break가 필요없음
// 모든 경우를 커버하기 위해 마지막에 default 키워드를 반드시 명시해줘야함.
// 단, default 없이도 모든 경우가 커버되었다면, default 키워드가 없어도 됨.
// break문 필요없음
var language = "ios SWIFT"
switch language {
case "C", "C++": // 여러 케이스를 지정하는 경우
print("C++")
case "JAVA":
print("JAVA")
case let x where x.hasSuffix("SWIFT"):
print("SWIFT")
default:
print("Computer Language")
}
'iOS DEV > swift' 카테고리의 다른 글
swift - 5.문법(Functions and Closures) (0) | 2020.12.20 |
---|---|
swift - 4.문법(반복문) (0) | 2020.12.16 |
swift - 2. 문법(변수,상수,배열,사전) (0) | 2020.12.15 |
swift - 1.시작 (0) | 2020.12.15 |