ye0nn
영차영차
ye0nn
전체 방문자
오늘
어제
  • 분류 전체보기 (61)
    • CS (0)
      • 운영체제 (0)
      • 네트워크 (0)
      • 알고리즘 & 자료구조 (0)
    • 코딩테스트 (48)
      • 프로그래머스 (40)
      • 백준 (8)
    • 프로그래밍 (11)
      • 프론트엔드 (3)
      • 자바스크립트 (0)
      • 스위프트 (7)
      • 파이썬 (1)
    • 취준기록 (1)

인기 글

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

hELLO · Designed By 정상우.
ye0nn

영차영차

[Swift] 조건문
프로그래밍/스위프트

[Swift] 조건문

2022. 2. 10. 22:14

 

조건문이란?

  • 주어진 조건에 따라 코드의 흐름을 제어하는 것이다.
  • 스위프트의 조건문에는 if-else 문, switch 문, guard 가 있다. 

 

 

if 문

if 조건식1 {
	// 조건식1을 만족했을 때 실행되는 구문
} else if 조건식2{
	// 조건식2를 만족했을 때 실행되는 구문
} else {
	// 아무 조건식도 만족하지 못했을 때 실행되는 구문
}

 

 

Switch 문

  • 패턴 기반으로 실행된다.
  • 하나의 패턴이 일치하면 스위치 문은 종료된다.
switch 비교대상 {
	case 패턴1:
		// 패턴1 일치할 때 실행되는 구문
	case 패턴2:
		// 패턴2 일치할 때 실행되는 구문
	case 패턴3:
		// 패턴3 일치할 때 실행되는 구문
	default:
		// 아무 패턴도 일치하지 않을 때 실행되는 구문

}

 

  • fallthrough 키워드를 사용하여 조건이 맞는 case 문 실행 후, 그 다음 case 문의 조건이 맞지 않아도 해당 구문을 실행한다.
  • 아래 코드에서, num 상수에 3을 할당하면 1~5 출력 후, 6~10 이 출력된다.
  • 이는 fallthrough 키워드 때문에 첫번째 case 구문만 실행 후 종료되는 것이 아니라 두 번째 case 문까지 실행 후 종료되기 때문이다.
let num = 3

switch num {
    case 1...5:
        print("1~5")
        fallthrough
    case 6...10:
        print("6~10")
    case 11...:
        print("11~")
    default:
        print("nothing")
}

// 1~5
// 6~10

 

  • 비교 패턴에 범위 연산자 사용이 가능하다.
let num = 3

switch num {
    case 1...5:
        print("1~5")
    case 6...10:
        print("6~10")
    case 11...:
        print("11~")
    default:
        print("nothing")
}

// 1~5

비교 연산자의 종류는 아래와 같다.

  • A...B   → A 이상 B 이하
  • A.. <B  →  A 이상 B 미만
  • A...     →  A 이상
  • ... A     →  A 이하
  • .. <A    →  A 미만 

 

guard 

  • guard는 if 문과 사용법이 비슷하다.
guard 조건 else {
	// 조건을 만족하지 못할 때 실행되는 구문
}
  • 다만 guard 의 경우, guard 뒤에 나오는 조건을 만족하지 못할 때 구문이 실행된다.
  • 그리고 guard 는 함수 내에서 사용되며 잘못된 값이 함수에 들어오는 것을 방지하는 것을 목적으로 한다.
  • 아래 코드에서 name 이 nil 이 아니라는 조건을 만족하지 못하면 else 실행되면서 함수는 종료된다.
  • name에 nil 이 아닌 "Amy" 값을 넘겼기 때문에 함수가 종료되지 않고 print(name)을 수행한다.
func printName(name: String) {
    guard name != nil else {
        return
    }
    print(name)
}

let name = "Amy"
printName(name: name)

// Amy

 

 

 

 

참조

Fast Campus - 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.

'프로그래밍 > 스위프트' 카테고리의 다른 글

[Swift] 반복문  (0) 2022.06.28
[Swift] 함수 (Function) 란?  (0) 2022.02.10
[Swift] 컬렉션 타입  (0) 2022.02.10
[Swift] 스위프트의 기본 데이터 타입  (0) 2022.02.10
[Swift] 상수와 변수  (0) 2022.02.09
    '프로그래밍/스위프트' 카테고리의 다른 글
    • [Swift] 반복문
    • [Swift] 함수 (Function) 란?
    • [Swift] 컬렉션 타입
    • [Swift] 스위프트의 기본 데이터 타입
    ye0nn
    ye0nn
    프론트엔드 개발자의 개발기록

    티스토리툴바