Swift

Swift - 3. 제어 흐름

iosos 2023. 12. 26. 16:26

 

break

  • 현재 반복문에서 빠져나와 반복문 다음의 코드로 이동하여 실행

 

continue

  • 반복문의 나머지 코드를 건너뛰고 반복문의 처음으로 다시 돌아감

 

 

guard 구문

  • 불리언 표현식을 포함, true일 때만 guard 구문 다음에 위차한 코드가 실행됨
  • false일 때 수행될 else 절을 반드시 포함해여 함
  • else 절의 코드는 반드시 현재의 코드 흐름에서 빠져나가는 구문(return, break, continue, throw)을 포함해야 함
  • else 블록은 자기 자신을 반환하지 않는 다른 함수나 메서드 호출 가능.
guard <조건문(불리언 표현식)> else{
	// 조건문이 false일 때 실행될 코드
	<종료 구문>
}
// 조건문이 true 일 때 실행될 코드 
func multiplyByTen(value : Int?){
    guard let number = value, number < 10 else{
        print("Number is too high")
        return
    }
    let result = number * 10
    print(result)
}

multiplyByTen(value: 5) // 50
multiplyByTen(value: 10) // Number is too high
  • 옵셔널 형태의 정숫값을 매개변수로 받음
  • guard 구문은 값을 언래핑하기 위해 옵셔널 바인딩 사용, 10보다 작은지 판단
  • 값을 언래핑할 수 없거나, 언래핑 값이 9보다 큰 경우, else 절 실행
  • 10보다 작은 경우 guard 구문 이후 코드가 실행됨
  • number 변수는 guard 구문 밖에서도 유효함

 

 

switch

let value = 4

switch(value){
    case 0:
        print("zero")
    case 1:
        print("one")
    case 2:
        print("two")
    case 3:
        print("three")
    case 4:
        print("four")
    default:
        print("Integer out of range")
}

// four

 

 

  • case 구문 결합
let value = 2

switch(value){
    case 0, 1, 2:
        print("zero, one or two")
    case 3:
        print("three")
    case 4:
        print("four")
    default:
        print("Integer out of range")
}

// zero, one or two

 

 

  • switch 구문에서 범위 매칭
let temperature = 83

switch (temperature){
    case 0...49 :
        print("Cold")
    case 50...79 :
        print("Warm")
    case 80...110 :
        print("Hot")
    default :
        print("Temperature out of range")
}
// Hot

 

 

 

  • where 구문 사용하기
    • 값이 범위 조건에 일치하는지 검사할 뿐 아니라, 그 숫자가 홀수 인지 짝수인지 검사
let temperature = 54

switch (temperature){
    case 0...49 where temperature % 2 == 0 :
        print("Cold and Even")
    case 50...79 where temperature % 2 == 0:
        print("Warm and Even")
    case 80...110 where temperature % 2 == 0:
        print("Hot and Even")
    default :
        print("Temperature out of range")
}
// Warm and Even

 

 

 

  •  fallthrough
    • 다른 언어와 달리 case 구문 끝에 break를 사용할 필요 없이 자동으로 구문 밖으로 빠져나감
    • fallthrough 구문을 사용하면 switch 구현부에 예외상황 효과를 주어, 실행 흐름이 그 다음의 case 구문으로 계속 진행하게 할 수 있음
    • 또한 break는 자주 사용되진 않지만 default 문에서 작업이 필요없으면 break 사용
    let temperature = 54
    
    switch (temperature){
        case 0...49 where temperature % 2 == 0 :
            print("Cold and Even")
            fallthrough
        case 50...79 where temperature % 2 == 0:
            print("Warm and Even")
            fallthrough
        case 80...110 where temperature % 2 == 0:
            print("Hot and Even")
            fallthrough
        default :
            break   // break는 자주 사용되진 않지만 default 문에서 작업이 필요없으면 break 사용
    }
    /*
    Warm and Even
    Hot and Even 
    */
    

'Swift' 카테고리의 다른 글

Swift - 5. 객체 지향 프로그래밍 기초  (0) 2023.12.27
Swift - 4. 함수, 메서드, 클로저 개요  (1) 2023.12.26
Swift - 2. 연산자와 표현식  (0) 2023.12.24
Swift - 1. 데이터 타입  (0) 2023.12.24
Swift - Dictionary  (0) 2023.09.02