Swift/Swift 기본문법

Swift 기본 문법 - 8. 반복문

728x90

반복문

 

for-in 구문 

for i in 0...5 {
    if i.isMultiple(of: 2) {
        print(i)
        continue
    }
    print("\(i) == 홀수")
}

//0
//1 == 홀수
//2
//3 == 홀수
//4
//5 == 홀수

let helloSwift: String = "Hello Swift!"

for char in helloSwift {
    print(char)
}


var result: Int = 1

// 시퀀스에 해당하는 값이 필요 없다면 와일드 카드 식별자(_)를 사용하면 됩니다.
for _ in 1...3 {
    result *= 10
}

print("10의 3제곱은 \(result) 입니다.")
// 10의 3제곱은 1000 입니다.

// Dictionary
let friends: [String: Int] = ["Jay": 35, "Joe": 20, "Jenny": 31]

for tuple in friends {
    print(tuple)
}
//(key: "Jenny", value: 31)
//(key: "Jay", value: 35)
//(key: "Joe", value: 20)

let 주소: [String: String] = ["도": "충정북도", "시군구":"청주시 청원구", "동읍면": "율량동"]

for (키, 값) in 주소 {
    print("\(키): \(값)")
}
//도: 충정북도
//시군구: 청주시 청원구
//동읍면: 율량동

// Set
let 지역번호: Set<String> = ["02", "031", "064"]

for 번호 in 지역번호 {
    print(번호)
}
//031
//064
//02

 

while 구문

var names: [String] = ["Joker", "Jenny", "Nova", "kemi"]

//while names.isEmpty == false {
//    print("Good bye \(names.removeFirst())")
//}

//Good bye Joker
//Good bye Jenny
//Good bye Nova
//Good bye kemi


// repeat while 구문
// do while 구문과 동일함

repeat {
    print("Good bye \(names.removeFirst())")
} while names.isEmpty == false

 

반복문이 중첩될 때, break, continue 구문을 사용 할때 특정 반복문을 지정하여 사용 할 수 있습니다.

자바스크립트에서도 존재하지만 사용하지 않는걸로 알고있는데 swift에서는 잘 사용하는지 모르겠습니다.

var numbers: [Int] = [3, 2342, 6, 3252]

numbersLoop: for num in numbers {
    if num > 5 || num < 1 {
        continue numbersLoop
    }
    var count: Int = 0
    
    printLoop: while true {
        print(num)
        count += 1
        
        if count == num {
            break printLoop
        }
    }
    
    removeLoop: while true {
        if numbers.first != num {
            break numbersLoop
        }
        numbers.removeFirst()
    }
}

 

 

이외에도 for ... in 구문에서 index를 알기위해 아래와 같이도 사용을 자주 합니다.

var numbers = ["one","two","three"] 

for (index, number) in numbers.enumerated() {
    print("DEBUG: number index is \(index)")
    print("DEBUG: number values is \(number)")
}

 

반응형