[Swift] 조건문과 반복문

김형근·2024년 7월 20일

[Swift] 문법

목록 보기
6/20

🍎 Swift의 조건문과 반복문

  • Swift에서는 조건문과 반복문을 사용하여 코드의 흐름을 제어할 수 있습니다.

🍏 1. 조건문

🧃 1.1 if-else 문

  • if-else 문은 주어진 조건에 따라 코드 블록을 실행하는 구조입니다.
import UIKit

let someInteger = 100

// MARK: - if-else

// if 조건 {
//     실행할 코드
// } else if 조건 {
//     실행할 코드
// } else {
//     실행할 코드
// }

if (someInteger < 100) {
    print("100 미만") // someInteger가 100 미만일 때 실행
} else if someInteger > 100 {
    print("100 초과") // someInteger가 100 초과일 때 실행
} else {
    print("100") // someInteger가 100일 때 실행
} // 100

주의: 스위프트의 조건문에는 항상 Bool 타입이 들어가야 합니다. 따라서 if someInteger { } 와 같은 방식은 컴파일 오류가 발생합니다.

🧃 1.2 switch 문

  • switch 문은 주어진 값에 따라 여라 가지 경우를 처리하는 데 사용합니다.
// MARK: - switch

// switch 값 {
// case 패턴:
//     실행할 코드
// default:
//     실행할 코드
// }

switch someInteger {
case 0:
    print("zero") // someInteger가 0일 때 실행
case 1..<100:
    print("1 ~ 99") // someInteger가 1 이상 99 이하일 때 실행
case 100:
    print("100") // someInteger가 100일 때 실행
case 101...Int.max:
    print("over 100") // someInteger가 101 이상일 때 실행
default:
    print("unknown") // 위의 모든 경우에 해당하지 않을 때 실행
} // 100

// 정수 외의 다양한 기본 타입도 사용할 수 있습니다.
switch "geuni" {
case "hyun":
    print("hyun") // 문자열이 "hyun"일 때 실행
case "yeoni":
    print("yeoni") // 문자열이 "yeoni"일 때 실행
case "geuni":
    print("geuni!!") // 문자열이 "geuni"일 때 실행
default:
    print("unknown") // 위의 모든 경우에 해당하지 않을 때 실행
} // geuni!!

🧃 1.3 중첩 조건문

  • 조건문은 다른 조건문을 포함할 수 있습니다. 이를 중첩 조건문이라고 합니다.
// MARK: - 중첩 조건문

let temperature = 30

if temperature > 0 {
    print("온도가 0도 이상입니다.")
    if temperature > 25 {
        print("더운 날씨입니다.")
    } else {
        print("온화한 날씨입니다.")
    }
} else {
    print("온도가 0도 미만입니다.")
}

🧃 1.4 조건문과 논리 연산자

  • 조건문에서는 논리 연산자(&&, ||)를 사용하여 여러 조건을 결합할 수 있습니다.
// MARK: - 논리 연산자

let age = 20
let hasPermission = true

if age >= 18 && hasPermission {
    print("접근이 허용됩니다.")
} else {
    print("접근이 거부됩니다.")
}

🍏 2. 반복문

  • 반복문은 특정 조건이 만족되는 동안 코드를 반복 실행하는 구조입니다.

🧃 2.1 for-in 문

  • for-in 문은 컬렉션(배열, 딕셔너리 등)의 각 요소를 순회하는 데 사용됩니다.
// MARK: - for-in

// for 아이템 in 아이템들 {
//     실행할 코드
// }

var integers = [1, 2, 3]
let people = ["geuni": 10, "yeoni": 15, "hyun": 12]

// 배열의 각 요소를 순회
for integer in integers {
    print(integer) // 1, 2, 3 출력
}

// 딕셔너리의 각 키-값 쌍을 순회
for (name, age) in people {
    print("\(name): \(age)") // "geuni: 10", "yeoni: 15", "hyun: 12" 출력
}

🧃 2.2 while 문

  • while 문은 주어진 조건이 true인 동안 코드를 반복 실행합니다.
// MARK: - while

// while 조건 {
//     실행할 코드
// }

while integers.count > 1 {
    integers.removeLast() // 배열의 마지막 요소를 제거
}

🧃 2.3 repeat-while 문

  • repeat-while 문은 최소 한 번은 실행된 후 조건을 검사합니다.
// MARK: - repeat-while

// repeat {
//     실행할 코드
// } while 조건

repeat {
    integers.removeLast() // 배열의 마지막 요소를 제거
} while integers.count > 0 // 배열이 비어있지 않은 동안 반복

🧃 2.4 for 문

  • for 문은 정해진 횟수만큼 반복 실행할 때 유용합니다. 주로 인덱스를 사용해 배열이나 컬렉션의 요소를 접근할 때 사용됩니다.
// MARK: - for 문

// for 인덱스 in 0..<n {
//     실행할 코드
// }

for index in 0..<5 {
    print("Index: \(index)") // 0, 1, 2, 3, 4 출력
}

위의 예제에서 0..<5는 0부터 4까지의 범위를 나타냅니다. 이와 같은 방식으로 for 문을 사용하여 반복할 수 있습니다.

🧃 2.5 forEach 반복문

  • forEach 메서드는 배열이나 딕셔너리와 같은 컬렉션의 각 요소에 대해 클로저를 실행하는 방법입니다.
// MARK: - forEach

// 배열의 각 요소에 대해 클로저를 실행
integers.forEach { integer in
    print(integer) // 1, 2, 3 출력
}

// 딕셔너리의 각 키-값 쌍에 대해 클로저를 실행
people.forEach { (name, age) in
    print("\(name): \(age)") // "geuni: 10", "yeoni: 15", "hyun: 12" 출력
}

참고: forEach는 배열이나 딕셔너리의 요소를 순회할 때 함수형 프로그래밍 스타일을 사용할 수 있게 해줍니다.

profile
꾸준히 기록하기

0개의 댓글