iOS

[iOS] 2025.02.07 반복문 이해하기

ioskkt 2025. 2. 7. 17:51

반복문 이해하기

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 문

  • 반복 횟수가 정해져 있지 않고, 특정 조건이 참일 동안 반복할 때 사용
  • 루프를 실행하기 전 조건을 먼저 검사.
  • 조건이 거짓이면 반복을 실행하지 않음.
  • 사용 사례
  • 반복 횟수를 미리 알 수 없을 때.
  • 사용자가 특정 조건을 만족할 때까지 반복해야 할 때.
  • 게임의 메인 루프처럼 계속 실행해야 할 때.
  • 예시 코드

// 사용자가 0을 입력할 때까지 계속 입력받기

var input = -1

while input != 0 {

print("숫자를 입력하세요 (0을 입력하면 종료): ")

if let userInput = readLine(), let num = Int(userInput) {

input = num

}

}

print("프로그램 종료")

*처음보는 readLine

 

3. repeat-while 문

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

// 1회 이상 실행 후 조건 검사

var count = 0

repeat {

print("반드시 한 번 실행됩니다! (현재 count: \(count))")

count += 1

} while count < 3

  • 예시코드

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

var password = ""

repeat {

print("비밀번호 입력: ")

password = readLine() ?? ""

} while password != "1234"

print("비밀번호가 맞습니다!")

 

반복 횟수가 정해져 있다면? -> for-in 문 사용

조건을 먼저 확인한 후 실행해야 한다면? -> while 문 사용

반드시 한 번은 실행해야 한다면? -> repeat-while 문 사용

 

반복문 연습하기

 

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

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

* 고민해봤지만 코드가 떠오르지 않았음. 좀 더 진득하게 고민해볼것.

 

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

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

* 곱하기로 뭔가 해보려 했으나, 좀 더 공부해봐야 할듯함.

 

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

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

* 처음보는 Int.random 갑툭튀.. 갈길이 멀다.

 

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

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

* 따라는 해봤지만, readLine에 대한 이해가 있어야 100% 알고 넘어갈듯..

 

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

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

*게시물 보고 따라하면서 어찌어찌 돌렸으나, Xcode나 Swift Playgrounds에서 돌려보고 싶다는 마음이 간절...

*코드가 점점 복잡해져가면서 이해하는데 시간이 오래걸리기 시작함.