개발 창고/iOS

[SwiftUI] How to use "For Loop"

로이제로 2023. 12. 3. 22:00
반응형

 

 

// 기본 문법 #1
for i in 1..n {
    // TODO
}

// 기본 문법 #2
for item in list {
    // TODO
}

 

1. 기본 문법 #1

특정 숫자까지의 반복문을 사용하고 싶은 경우 아래와 같이 사용 가능합니다.

만약 2000년부터 2023년까지의 연도를 출력하고 싶은 경우

print("2000년부터 2023년까지 출력 [방법 #1]")
for year in 2000...2023 {
    print("this year is \(year)")
}

print("2000년부터 2023년까지 출력 [방법 #2]")
for year in stride(from: 2000, to: 2023, by:1) {
    print("this year is \(year)")
}

실행결과 #1

 위와 같이 2000년부터 2023년까지 출력됨을 확인할 수 있습니다.

 만약 역순으로 출력하고 싶다면 아래와 같이 출력 가능합니다.

for year in stride(from: 2023, to: 2000, by:-1) {
    print("this year is \(year)")
}

실행결과 #2

 또한, 2년 단위로 출력하고 싶은 경우 step을 이용하여 짝수연도만 출력도 가능합니다.

for year in stride(from: 2023, to: 2000, by:-2) {
    print("this year is \(year)")
}

실행결과 #3

 

2. 기본문법 #2

만약 ArrayList를 for loop로 수행하는 경우 아래와 같이 출력 가능합니다.

print("Array목록 출력")
let arr = ["서울", "경기", "강원", "충북", "충남", "전북", "전남", "경북", "경남"]
for item in arr {
    print("this citiy is \(item)")
}

이 경우 서울 부터 경남까지 아래와 같이 순차적으로 출력하게 됩니다.

실행결과 #4

 

3. 전체소스

테스트에 사용된 전체 소스는 아래와 같습니다.

import SwiftUI

// View 페이지
struct TestView: View {
    init() {
        self.test()
    }
    
    var body: some View {
        VStack {
            
        }
    }
    
    func test () {
        print("2000년부터 2023년까지 출력 [방법 #1]")
        for year in 2000...2023 {
            print("this year is \(year)")
        }
        
        print("2000년부터 2023년까지 출력 [방법 #2]")
        for year in stride(from: 2000, to: 2023, by:1) {
            print("this year is \(year)")
        }
        
        print("2000년부터 2023년까지 출력 (역순으로)")
        for year in stride(from: 2023, to: 2000, by:-1) {
            print("this year is \(year)")
        }
        
        print("2000년부터 2023년까지 출력 (역순으로 2년 단위)")
        for year in stride(from: 2023, to: 2000, by:-2) {
            print("this year is \(year)")
        }
        
        print("Array목록 출력")
        let arr = ["서울", "경기", "강원", "충북", "충남", "전북", "전남", "경북", "경남"]
        for item in arr {
            print("this citiy is \(item)")
        }
        
    }
}

// View 미리보기
struct TestView_Previews: PreviewProvider {
    static var previews: some View {
        TestView()
    }
}

 

반응형