스파르타 코딩 클럽 - iOS 스타터 6기/사전 캠프

6. 스파르타 코딩 클럽 - 반복문 이해하기

seongpil Heo 2025. 2. 12. 17:49

1️⃣ 반복문 이해하기

1. for-in 문

  • 정해진 횟수만큼 반복해야 할 때 사용합니다
  • 배열(Array) 또는 범위(Range)의 요소를 순회할 때 사용합니다.
    • 단, 반복 횟수가 미리 정해져 있어야 함.
    • 범위를 사용하여 특정 범위의 숫자를 반복할 수 있음.
for i in 1...5 {
	print("반복 \(i)회")
}
// 배열 요소 출력
let names = ["Alice", "Bob", "Charlie)]
for name in names {
	print("이름 : \(name)")
}

2. while 문

  • 반복 횟수가 정해져 있지 않고, 특정 조건이 참(true)일 동안 반복할 때 사용합니다.
    • 루프를 실행하기 전 조건을 먼저 검사
    • 조건이 거짓(false)이면 반복을 실행하지 않음
  • 사용 사례
    • 반복 횟수를 미리 알 수 없을 때
    • 사용자가 특정 조건을 만족할 때까지 반복해야 할 때
    • 게임의 메인 루프처럼 계속 실행해야 할 때
// 10 이하의 숫자를 반복 출력
var number = 1

while number <= 10 {
	print("현재 숫자 : \(number)")
    number += 1
}
// 사용자가 0을 입력할 때까지 계속 입력받기

var input = -1

while input != 0 {
	print("숫자를 입력하세요 (0을 입력하면 종료) : ")
    if let userInput = readLine(), let num = Int(userInput) {
    	input = num
    }

}
print("프로그램 종료")

 

실행 결과


3. repeat-while 문

  • 최소 1회 실행이 보장된 상태에서, 특정 조건이 참일 동안 반복할 때
    • while문과 달리, 먼저 실행한 후 조건을 검사
    • 조건이 거짓(false)이더라도 한 번은 반드시 실행
  • 사용 사례
    • 사용자 입력을 최소 한 번 이상 받아야 할 때
    • 최소 한 번 실행이 필요한 루프(예: 로그인 시 비밀번호 입력)
    • 데이터를 처리한 후 조건을 검사해야 할 때
// 1회 이상 실행 후 조건 검사
var count = 0

repeat {
	print("반드시 한 번 실행됩니다! (현재 count : \(count))")
    count += 1
} while count < 3
import Foundation

// 사용자 입력이 올바를 때까지 계속 요청
var password = ""

repeat {
    print("비밀번호 입력 :")
    password = readLine() ?? ""
} while password != "1234"
            
print("비밀번호가 맞습니다!")

 

실행 결과

📝 요약

반복문 사용 시점 특징
for-in 문 반복 횟수가 명확할 때 범위나 배열을 순회할 때 적합
while 문 반복 횟수를 모를 때 조건을 먼저 검사하고 실행
repeat-while 문 최소 1회 실행이 필요할 때 실행 후 조건을 검사

 

🎯 반복문 선택 가이드

  • 반복 횟수가 정해져 있다면? → for-in 문 사용
  • 조건을 먼저 확인한 후 실행해야 한다면? → while 문 사용
  • 반드시 한 번은 실행해야 한다면? → repeat-while 문

2️⃣ 반복문 연습하기

 문제 1 : 1부터 N까지의 합 구하기 (for문 사용)

  • 사용자로부터 N을 입력받아 1부터 N까지의 합을 계산하는 프로그램을 작성하세요

출력 예시

N : 5
1부터 5까지의 합은 15입니다.

 

정답 코드


 문제 2 : 짝수만 출력하기 (for문 & if문 사용)

  • 1부터 20까지 숫자 중 짝수만 출력하는 프로그램을 작성하세요

출력 예시

2
4
6
...
20

 

정답 코드


 문제 3 : 특정 숫자가 나올 때까지 반복 (while문 사용)

  • 컴퓨터가 랜덤한 숫자를 생성하고, 그 숫자가 5가 나올 때까지 반복하는 프로그램을 작성하세요.

출력 예시

3
7
2
5가 나왔습니다!

 

정답 코드


 문제 4 : 비밀번호 맞출 때까지 반복 (repeat-while 사용)

  • 사용자가 정해진 비밀번호 "1234"를 입력할 때까지 계속 입력을 요구하는 프로그램을 작성하세요.

출력 예시

비밀번호 입력 : 1111
비밀번호가 틀렸습니다. 다시 입력해주세요.
비밀번호 입력 : 1234
비밀번호가 맞습니다!

 

정답 코드


🗻 도전 과제 : 숫자 맞추기 게임 만들기

  1. 컴퓨터가 1~100 사이의 숫자를 랜덤으로 선택합니다.
  2. 사용자가 숫자를 입력하고, 컴퓨터가 선택한 숫자와 비교하여 힌트를 줍니다.
    • 사용자가 입력한 숫자가 정답보다 크면 "더 작은 숫자를 입력하세요!" 출력
    • 사용자가 입력한 숫자가 정답보다 작으면 "더 큰 숫자를 입력하세요!" 출력
    • 정답을 맞히면 "축하합니다! 정답입니다!" 출력 후 종료

정답 코드

import Foundation

// 숫자 맞추기 게임

let comNum = Int.random(in: 1...100)
var plyNum : Int? = nil

repeat {
    print("숫자를 입력하세요 : ", terminator: "")
    if let userInput = readLine(), let number = Int(userInput) {
            plyNum = number
            if plyNum! < comNum {
                print("더 큰 숫자를 입력하세요!")
            } else if plyNum! > comNum {
                print("더 작은 숫자를 입력하세요!")
            }
        } else {
            print("올바른 숫자를 입력해주세요.")
        }
} while plyNum != comNum

print("🎉 축하합니다! 정답입니다! 🎉")