k-coding
Swift 조건문 본문
Swift 조건문
IF
if문은 조건에 따라 해야 될 작업을 분기할 때 사용합니다.
다른 언어와 다르게 조건문에 괄호 () 를 붙이지 않습니다.
예제 )
var score = 70
if score >= 80 {
print("통과입니다.")
}else {
print("다시 하세요")
}
구분 할 조건이 더 늘어나서 사용 할 때에는 else if 문을 사용합니다.
예제 )
var score = 70
if score >=80 {
print("A")
}else if score >=60{
print("B")
}else {
print("Failed")
}
Switch case
switch case문은 c언어와 크게 차이는 없지만 각 case마다 break가 내장 되어있어서 적을 필요가 없다.
대신 switch안에 나열된 모든 case에 해당되지 않을때 발동되는 default: 는 반드시 적어주어야 한다.
예제 )
var type = "a"
switch type {
case "a":
print("a타입입니다.")
case "b":
print("b타입입니다.")
case "c":
print("c타입입니다.")
default:
print("타입을 유추 할 수 없습니다.")
}
case에는 범위값도 사용이 가능합니다.
예제 )
var score = 83
switch score {
case 80...100 :
print("훌륭 합니다.")
case 40...79 :
print("분발 합시다.")
default:
print("형편 없습니다.")
}
또한, where문도 사용 가능합니다.
예제 )
let score = ("pass","failed")
switch score {
case let (x,_) where x == "failed" :
print("테스트 1 탈락")
case let (_,y) where y == "failed" :
print("테스트 2 탈락")
default :
print("통과 입니다.")
} // "테스트 2 탈락"
※ 튜플 등에서는 사용하지 않고 넘기는 파라미터앞에 " _ " 를 사용하여 넘긴다.
guard 문
guard 문은 if문과는 반대로 조건식이 거짓이면 발동된다.
guard < 불리언 조건문 > else {
// 조건식이 거짓이면 실행 될 문장
// return, throw 등 코드블록을 빠져나갈 문장
} // 표현식이 참일 시 실행 될 문잧
if문과 다르게 특정 조건이 아닐 때에 함수를 빠져나가므로, 조건을 걸러내서 표현하기에 가독성과 편의성이 좋다.
If vs guard
if 문 예시 )
func IfVsGuard () {
var index_1 :Int? = 2
var index_2 :Int?
var nameArray = ["한민","아라","송하","현준","희준"]
if let myValue = index_1{
print(nameArray[myValue])
}else{
print("error")
} // 송하
if let myValue = index_2{
print(nameArray[myValue])
}else{
print("error")
} // error
}
guard 문 예시 )
func IfVsGuard() {
let index_1 :Int? = 2
let index_2 :Int?
let nameArray = ["한민","아라","송하","현준","희준"]
guard let index_1 = nil else {
return print("error")
}
print (nameArray[index_1]) // 송하
guard let index_2 = nil else {
return print("error")
}
print (nameArray[index_1]) // error
}
guard let 예시 )
func profile (yourName :String, yourAge :Int?) {
guard let age = yourAge else {
print("나이를 입력하지 않으면 정보 조회가 어렵습니다.")
return
} print(yourName,age)
}
profile(yourName: harry, yourAge:28)
profile(yourName:bruno, yourAge:nil)
'iOS > Swift 정리' 카테고리의 다른 글
Swift 클로저( closure ) (0) | 2021.09.30 |
---|---|
Swift 1급 객체 / 시민 (0) | 2021.09.29 |
Swift 옵셔널 (Optional) (0) | 2021.09.07 |
Swift 튜플 (TUPLE) (0) | 2021.09.06 |
Swift 변수, 상수 (0) | 2021.09.06 |
Comments