k-coding

Swift 조건문 본문

iOS/Swift 정리

Swift 조건문

chkhn_oiiu 2021. 9. 9. 13:32

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