Categories: Swift

Swift에서 for-in, while, repeat-while 반복문 차이점

안녕하세요, 여러분! 오늘은 Swift매력적인 반복문 세계로 함께 떠나볼까 해요? 마치 롤러코스터를 타듯, 코드 속에서 빙글빙글 도는 데이터들을 신나게 다뤄볼 거예요.🎢

혹시 Swift로 앱을 개발하면서, 똑같은 코드를 여러 번 반복해서 쓰느라 지친 적 있으신가요? 그럴 때 바로 ‘반복문‘이라는 마법 지팡이를 휘두르면 돼요! ✨ 오늘 우리가 깊이 있게 들여다볼 주인공은 바로 for-in, while, 그리고 repeat-while 반복문이에요. 각각의 반복문은 어떤 특징을 가지고 있을까요? 또, 어떤 상황에서 어떤 반복문을 사용하는 것이 좋을까요? 함께 알아보면서, 여러분의 Swift 코딩 실력한 단계 업그레이드해 보아요! 🚀

 

 

for-in 반복문의 특징과 사용 예시

for-in 반복문?! Swift에서 컬렉션(배열, 딕셔너리, 세트, 문자열 등)의 각 요소를 순회할 때 정말 유용하게 쓰이는 녀석이에요. 마치 마법처럼 간결하고 우아하게 코드를 작성할 수 있도록 도와주죠! ✨ 그럼, for-in 반복문의 매력적인 특징들을 하나씩 살펴볼까요?

for-in 반복문의 특징

첫 번째로, for-in 반복문은 명시적인 인덱스 관리가 필요 없어요. 배열의 경우, 0부터 배열의 크기 -1까지 인덱스를 증가시키면서 각 요소에 접근하는 방식은 꽤나 번거롭잖아요? 하지만 for-in 반복문을 사용하면 이런 귀찮은 작업 없이 각 요소에 직접 접근할 수 있답니다. 편리함 덕분에 코드 가독성도 훨씬 좋아지죠! 👍

두 번째, 타입 추론 덕분에 코드가 더 간결해져요. 컬렉션의 요소 타입을 명시적으로 선언하지 않아도 Swift 컴파일러가 자동으로 타입을 추론해주거든요. 예를 들어, 문자열 배열을 순회할 때, 각 요소가 문자열 타입임을 컴파일러가 알아서 처리해주니 얼마나 편한가요? 😊

세 번째, 다양한 컬렉션 타입에 적용 가능하다는 점이에요! 배열, 딕셔너리, 세트, 문자열, 심지어 범위(Range)까지! for-in 반복문 하나로 다양한 타입의 컬렉션을 자유자재로 순회할 수 있다는 건 정말 큰 장점이죠. 마치 만능열쇠 같지 않나요? 🔑

자, 그럼 이제 실제 사용 예시를 통해 for-in 반복문의 매력을 더 자세히 느껴보도록 해요.

for-in 반복문 사용 예시

1. 배열 순회: 과일 이름이 담긴 배열을 생각해 보세요. for-in 반복문을 사용하면 각 과일 이름을 간단하게 출력할 수 있어요.

let fruits = ["사과", "바나나", "딸기", "포도", "수박"]

for fruit in fruits {
    print("나는 \(fruit)를 좋아해요!")
}

2. 딕셔너리 순회: 학생 이름과 점수가 저장된 딕셔너리가 있다면, for-in 반복문을 사용하여 각 학생의 이름과 점수를 출력할 수 있답니다.

let scores = ["철수": 90, "영희": 85, "민수": 95]

for (name, score) in scores {
    print("\(name)의 점수는 \(score)점입니다.")
}

3. 세트 순회: 중복된 숫자를 제거한 세트가 있다고 가정해 볼게요. for-in 반복문을 사용하면 각 숫자를 출력할 수 있습니다.

let numbers: Set = [1, 2, 3, 4, 5, 1, 2, 3]

for number in numbers {
    print(number) // 중복된 숫자는 한 번만 출력됩니다.
}

4. 문자열 순회: 문자열의 각 문자를 출력하는 것도 for-in 반복문으로 간단하게 처리할 수 있어요!

let message = "Hello, Swift!"

for character in message {
    print(character)
}

5. 범위(Range) 순회: 특정 범위의 숫자를 순회할 때도 for-in 반복문이 유용하게 쓰입니다. 예를 들어, 1부터 10까지의 숫자를 출력하는 코드는 다음과 같아요.

for i in 1...10 {
    print(i)
}

// 1부터 9까지 출력하려면 ... 대신 ..< 를 사용할 수 있어요.
for i in 1..<10 {
    print(i)
}

6. where 절 사용: for-in 반복문에 where 절을 추가하면 특정 조건을 만족하는 요소만 순회할 수 있어요. 짝수만 출력하는 코드를 예시로 살펴볼까요?

for i in 1...10 where i % 2 == 0 {
    print(i)
}

와우! for-in 반복문, 정말 다재다능하지 않나요? 😍 이처럼 for-in 반복문은 Swift에서 반복 작업을 처리하는 데 강력하고 효율적인 도구랍니다. 다양한 활용법을 익혀서 여러분의 코드를 더욱 깔끔하고 우아하게 만들어보세요! 🚀 다음에는 while 반복문에 대해 알아볼 거예요. 기대해주세요! 😉

 

while 반복문의 작동 방식과 활용법

for-in 반복문이 정해진 횟수만큼 반복하는 것과 달리, while 반복문은 조건이 참인 동안 계속해서 반복 작업을 수행해요. 마치 뫼비우스의 띠처럼, 조건이 거짓이 될 때까지 끊임없이 돌고 도는 느낌이랄까요? 🤔 이러한 특성 덕분에 while 반복문은 반복 횟수를 미리 알 수 없거나, 특정 조건이 만족될 때까지 반복해야 하는 상황에 아주 유용하게 쓰인답니다!

while 반복문의 기본 구조

while 반복문의 기본적인 구조는 놀랍도록 간단해요. while 조건 { // 실행할 코드 } 이렇게 말이죠! 마치 “조건이 참이라면, 중괄호 안의 코드를 계속 실행해!”라고 명령하는 것 같지 않나요? 참, 여기서 중요한 건 조건식이에요. 이 조건식이 반복문의 운명을 좌우한답니다. 조건식이 참인 동안에는 while 반복문이 계속 실행되지만, 거짓이 되는 순간 반복문은 멈추고 다음 코드로 넘어가요. 마치 마법의 주문처럼 말이죠! ✨

while 반복문의 작동 방식

자, 이제 while 반복문이 어떻게 작동하는지 좀 더 자세히 알아볼까요? 예를 들어, 사용자로부터 0이 아닌 정수를 입력받아 그 수들의 합을 계산하는 프로그램을 만들어 본다고 생각해 보세요. 이 경우, 몇 개의 숫자를 입력받을지 미리 알 수 없기 때문에 for-in 반복문보다는 while 반복문이 훨씬 적합해요.

var sum = 0
var input = 1

while input != 0 {
    print("0이 아닌 정수를 입력하세요 (0을 입력하면 종료): ", terminator: "")
    if let number = Int(readLine() ?? "") {  // 안전하게 정수 변환
        input = number
        if input != 0 {
            sum += input
        }
    } else {
        print("잘못된 입력입니다. 정수를 입력해주세요.")
    }
}

print("입력된 숫자의 합은 \(sum)입니다.")

위 코드에서 input != 0은 while 반복문의 조건식이에요. 사용자가 0을 입력하기 전까지는 이 조건식이 항상 참이기 때문에 반복문이 계속 실행되겠죠? 사용자가 0이 아닌 정수를 입력할 때마다 sum 변수에 그 값이 더해지고, 마지막으로 0을 입력하면 조건식이 거짓이 되어 반복문이 종료되고 최종 합계가 출력되는 거예요. 참 쉽죠? 😄

게임 개발에서의 활용

while 반복문은 게임 개발에도 아주 유용하게 활용될 수 있어요. 예를 들어, 캐릭터의 생명력(HP)이 0보다 큰 동안 게임을 계속 진행하고, 0이 되면 게임 오버 메시지를 출력하는 코드를 작성해 볼까요?

var hp = 100

while hp > 0 {
    // ... 게임 로직 실행 ...
    // 예: 몬스터 공격, 아이템 사용 등으로 HP 변화

    print("현재 HP: \(hp)")

    // ...  HP 감소 로직 (예시) ...
    let damage = Int.random(in: 10...20)  // 10~20 사이의 랜덤 데미지
    hp -= damage
}

print("Game Over!! 😭")

이 코드에서는 hp > 0이 조건식이에요. 캐릭터의 HP가 0보다 큰 동안에는 게임 로직이 계속 실행되고, HP가 0 이하가 되면 반복문이 종료되고 “Game Over!!” 메시지가 출력되는 거죠. 이처럼 while 반복문은 게임의 흐름을 제어하는 데 아주 중요한 역할을 한답니다!

파일 읽기에서의 활용

또 다른 활용 예시로, 특정 파일의 끝까지 읽어오는 작업을 생각해 볼 수 있어요. 파일의 크기를 미리 알 수 없기 때문에, 파일의 끝을 나타내는 특정 문자나 조건을 만날 때까지 while 반복문을 사용하여 데이터를 읽어올 수 있겠죠? 이처럼 while 반복문은 다양한 상황에서 유연하게 활용할 수 있는 강력한 도구랍니다! 💪

무한 루프 주의

while 반복문을 사용할 때는 한 가지 주의할 점이 있어요! 바로 무한 루프에 빠지지 않도록 조심해야 한다는 거예요. 만약 조건식이 항상 참이라면, while 반복문은 영원히 끝나지 않고 계속 실행될 거예요. 마치 뫼비우스의 띠가 영원히 이어지는 것처럼 말이죠. 😅 그러니 while 반복문을 사용할 때는 반복문이 언젠가는 종료될 수 있도록 조건식을 신중하게 설계해야 한답니다! 잊지 마세요! 😉

자, 이제 while 반복문의 작동 방식과 활용법에 대해 잘 이해하셨나요? 😊 다음에는 더욱 흥미로운 repeat-while 반복문에 대해 알아보도록 할게요! 기대해 주세요! 😉

 

repeat-while 반복문 이해하기

자, 이제 Swift의 반복문 삼총사 중 마지막 주자인 repeat-while 반복문에 대해 알아볼까요? for-inwhile 반복문은 조건을 먼저 확인하고 코드 블록을 실행하는 반면, repeat-while은 코드 블록을 최소 한 번은 무조건 실행한 후에 조건을 확인한다는 점이 가장 큰 특징이에요! 마치 놀이공원에 입장하면 적어도 한 번은 놀이기구를 타고 나와야 하는 것과 같은 느낌이랄까요? ^^

do-while 반복문

repeat-while 반복문은 다른 언어에서는 do-while 반복문으로 불리기도 해요. 이름만 다를 뿐, 동작 방식은 완전히 똑같답니다. 먼저 실행하고 생각하는(?) 독특한 구조 덕분에 특정 상황에서 유용하게 활용될 수 있어요. 예를 들어, 사용자로부터 특정 값을 입력받아야 하는데, 유효한 값이 입력될 때까지 계속해서 입력을 요청해야 하는 경우! 이럴 때 repeat-while 반복문을 사용하면 훨씬 간결하고 효율적인 코드를 작성할 수 있답니다.

repeat-while 반복문의 기본 구조

repeat-while 반복문의 기본적인 구조는 다음과 같아요. 참 쉽죠?!


repeat {
    // 실행할 코드 블록 (최소 한 번 실행됨)
} while 조건식

repeat 키워드 다음에 중괄호 {} 안에 실행할 코드를 작성하고, while 키워드 뒤에 조건식을 작성하면 돼요. 조건식이 true이면 코드 블록이 다시 실행되고, false이면 반복문이 종료되는 방식이에요. while 반복문과 비교하면 조건식의 위치만 다르다고 생각하면 쉽겠죠?

repeat-while 반복문 예시

자, 이제 실제 예시를 통해 repeat-while 반복문의 매력을 더 자세히 느껴볼까요? 사용자에게 1부터 100 사이의 숫자를 입력하도록 요청하고, 입력된 값이 범위를 벗어나면 다시 입력을 요청하는 프로그램을 만들어 보겠습니다!


var number: Int = 0

repeat {
    print("1부터 100 사이의 숫자를 입력하세요: ", terminator: "")
    if let input = readLine(), let num = Int(input) {
        number = num
    } else {
        print("잘못된 입력입니다. 숫자를 입력해주세요.")
    }
} while number  100

print("입력된 숫자는 \(number)입니다.")

이 코드에서는 repeat-while 반복문을 사용하여 사용자가 유효한 숫자(1~100)를 입력할 때까지 입력을 요청하고 있어요. 먼저 number 변수를 0으로 초기화하고, repeat 블록 안에서 사용자에게 숫자 입력을 요청하죠. 입력된 값이 1보다 작거나 100보다 크면 while 조건식이 true가 되어 반복문이 다시 실행되고, 유효한 숫자가 입력되면 while 조건식이 false가 되어 반복문이 종료된답니다. readLine()Int()를 사용해서 사용자 입력을 받고 숫자로 변환하는 부분도 눈여겨보세요! 그리고 잘못된 입력에 대한 처리도 잊지 않았죠?

repeat-while 반복문 활용

repeat-while 반복문은 최소 한 번 실행된다는 특징 때문에, 사용자 입력 유효성 검사, 게임 루프, 파일 읽기 등 다양한 상황에서 유용하게 활용될 수 있어요. 예를 들어, 게임에서 사용자가 특정 동작을 수행할 때까지 반복적으로 안내 메시지를 표시해야 하는 경우, repeat-while 반복문을 사용하면 간결하게 코드를 작성할 수 있겠죠?!

또 다른 예시로, 파일의 끝까지 데이터를 읽어오는 경우를 생각해 볼 수 있어요. 파일을 열고 데이터를 읽어오는 작업은 최소 한 번은 실행되어야 하잖아요? 이럴 때 repeat-while 반복문을 사용하면 파일의 끝에 도달할 때까지 데이터를 읽어오는 코드를 효율적으로 작성할 수 있답니다. 파일이 비어있는 경우에도 최소 한 번은 읽기 시도를 하기 때문에 예외 처리에도 유리해요!

repeat-while과 while 반복문 비교

repeat-while 반복문은 while 반복문과 비슷해 보이지만, 조건 검사 시점의 차이로 인해 활용되는 상황이 다르다는 것을 꼭 기억해 두세요! 어떤 반복문을 사용할지는 상황에 따라 적절하게 선택해야겠죠? repeat-while 반복문의 강점을 잘 활용하면 더욱 효율적이고 읽기 쉬운 Swift 코드를 작성할 수 있을 거예요! 화이팅! 😀

 

세 가지 반복문의 차이점 비교 및 선택 가이드

자, 이제 Swift의 for-in, while, repeat-while 반복문을 각각 살펴봤으니, 이 녀석들의 차이점을 제대로 파헤쳐보고 어떤 상황에서 어떤 반복문을 사용해야 효과적인지 알아보는 시간을 가져보도록 할게요! 마치 맛집 탐방 후 어떤 음식이 내 입맛에 딱 맞았는지 복기하는 것처럼 말이죠! 😋

각 반복문은 저마다의 개성(?)을 가지고 있어요. 마치 삼총사처럼 말이죠! for-in은 정해진 범위를 순회할 때, while은 조건이 참인 동안 반복할 때, repeat-while은 최소 한 번은 실행하고 조건을 확인할 때 사용하는 거죠. 이렇게만 보면 “아~ 그렇구나!” 하고 넘어갈 수 있지만, 실제 코드 작성에서는 미묘한 차이가 엄청난 결과를 가져올 수 있다는 사실! 잊지 마세요~

반복문 비교표

기능 for-in while repeat-while
반복 조건 정해진 범위 (ex. 배열, 범위) 조건이 참인 동안 조건이 참인 동안, 최소 한 번 실행
조건 검사 시점 반복 시작 전 반복 시작 전 반복 종료 후
사용 예시 컬렉션 데이터 처리 사용자 입력 대기, 게임 루프 메뉴 출력 및 선택, 파일 읽기

표로 정리해 보니 한눈에 쏙 들어오지 않나요? 마치 잘 정리된 서랍장을 보는 것 같아요! ✨ 이 표를 보면 각 반복문의 핵심적인 차이점을 바로 파악할 수 있답니다. 특히 “조건 검사 시점”은 정말 중요해요! while과 repeat-while은 조건 검사 시점이 다르기 때문에, 동일한 조건이라도 실행 결과가 달라질 수 있답니다. 이 부분은 나중에 실제 코드 작성 시 엄청난 함정(?)이 될 수 있으니 꼭 기억해 두세요! 😉

반복문 활용 예시

자, 그럼 예시를 통해 좀 더 자세히 알아볼까요? 만약 여러분이 쇼핑몰 앱을 개발하고 있다고 가정해 봅시다. 장바구니에 담긴 상품 목록을 화면에 표시해야 한다면 어떤 반복문을 사용해야 할까요? 정답은 바로 for-in 반복문입니다! 장바구니는 상품 목록이라는 정해진 범위를 가지고 있기 때문에 for-in 반복문을 사용하면 깔끔하게 코드를 작성할 수 있어요. 마치 쇼핑 리스트를 하나씩 체크해 나가는 것처럼 말이죠! 🛒

반대로, 사용자가 특정 버튼을 누를 때까지 게임 캐릭터를 계속 움직이게 하려면 어떨까요? 이럴 땐 while 반복문이 제격이죠! 버튼을 누르는 조건이 만족될 때까지 계속 반복해야 하니까요. 마치 마라톤 선수가 결승선을 통과할 때까지 달리는 것과 같은 원리! 🏃‍♂️

마지막으로, 사용자에게 메뉴를 보여주고 선택을 받아야 하는 상황을 생각해 보세요. 최소 한 번은 메뉴를 보여줘야 하죠? 이럴 때 딱 맞는 반복문은 바로 repeat-while 반복문입니다! 최소 한 번은 메뉴를 보여주고, 사용자가 종료를 선택할 때까지 반복하는 거죠. 마치 레스토랑에서 메뉴판을 보고 주문할 때까지 웨이터가 기다리는 것과 비슷하네요! 🍽️

반복문 선택 가이드

이처럼 각 반복문은 특정 상황에 최적화되어 있어요. 물론, 어떤 반복문을 사용하든 원하는 결과를 얻을 수 있지만, 상황에 맞는 반복문을 선택하면 코드가 훨씬 간결하고 효율적이 된다는 사실! 마치 요리할 때 적절한 도구를 사용하면 요리가 더 쉽고 맛있어지는 것과 같아요! 🍳

하지만, 어떤 반복문을 선택해야 할지 헷갈릴 때도 있겠죠? 😫 그럴 땐 당황하지 말고! 반복해야 할 작업의 특징과 조건을 꼼꼼히 살펴보세요. 그리고 각 반복문의 특징을 떠올리면서 어떤 반복문이 가장 적합한지 판단하면 된답니다. 마치 옷을 고를 때처럼 상황과 TPO에 맞춰 선택하는 거죠! 👔👗

반복문 선택, 이제 어렵지 않죠? 😉 Swift의 강력한 반복문 기능을 잘 활용해서 멋진 앱을 만들어 보세요! 저는 항상 여러분을 응원한답니다! 💪 다음에는 더욱 흥미진진한 Swift 이야기로 찾아올게요! 기대해 주세요! 😊

 

자, 이렇게 Swift의 for-in, while, repeat-while 반복문에 대해 알아봤어요! 어떤가요, 이제 좀 더 명확해졌나요? 각 반복문의 특징과 사용 예시를 살펴보면서, 어떤 상황에 어떤 반복문을 사용해야 할지 감이 잡혔기를 바라요. 처음엔 헷갈릴 수 있지만, 직접 코드를 작성하고 실행해보면서 익숙해지는 게 가장 중요해요. 마치 새로운 친구를 사귀는 것처럼 말이죠! 각 반복문의 미묘한 차이를 이해하고, 상황에 맞게 적절한 반복문을 사용한다면 여러분의 Swift 코드는 더욱 효율적이고 우아해질 거예요. 이제 여러분은 Swift 반복문 마스터를 향해 한 걸음 더 나아갔어요! 앞으로도 즐거운 코딩 여정을 이어가길 바라며, 다음에 또 만나요!

 

Itlearner

Share
Published by
Itlearner

Recent Posts

CentOS 설치 및 설정

안녕하세요, 여러분! 오늘은 리눅스 계열 운영체제 중 하나인 CentOS에 대해 함께 알아보는 시간을 가져보려고 해요.…

2시간 ago

우분투(Ubuntu) 설치 가이드

안녕하세요! 🤗 새로운 운영체제에 도전하고 싶은 마음, 두근거리지 않나요? 오늘은 자유롭고 강력한 오픈소스의 세계, 바로…

6시간 ago

리눅스란? 초보자 가이드

안녕하세요! 컴퓨터 세상에 발을 들여놓은 여러분을 환영해요! 혹시 리눅스라는 말, 들어보셨나요? 이름은 익숙한데 뭔가 어렵고…

10시간 ago

IPv6 개념과 활용법

안녕하세요, 여러분! 오늘은 인터넷 세상의 새로운 주소 체계, IPv6에 대해 함께 알아보는 시간을 가져보려고 해요.…

15시간 ago

클라우드 네트워크 설정 (AWS, Azure)

안녕하세요! 요즘 클라우드 시대라고 불릴 만큼 많은 기업들이 클라우드 서비스를 이용하고 있죠? 그런데 막상 클라우드를…

20시간 ago

네트워크 모니터링 도구 (Wireshark, NetFlow)

안녕하세요, 여러분! 오늘은 네트워크 관리자라면 누구나 궁금해할 만한 주제를 들고 왔어요. 바로 네트워크 모니터링 도구에…

24시간 ago

This website uses cookies.