스파르타 코딩 클럽 - 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~100 사이의 숫자를 랜덤으로 선택합니다.
- 사용자가 숫자를 입력하고, 컴퓨터가 선택한 숫자와 비교하여 힌트를 줍니다.
- 사용자가 입력한 숫자가 정답보다 크면 "더 작은 숫자를 입력하세요!" 출력
- 사용자가 입력한 숫자가 정답보다 작으면 "더 큰 숫자를 입력하세요!" 출력
- 정답을 맞히면 "축하합니다! 정답입니다!" 출력 후 종료
정답 코드
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("🎉 축하합니다! 정답입니다! 🎉")