seong_hye, the developer

Swift) 문법 정리 - 반복문 본문

IOS

Swift) 문법 정리 - 반복문

seong_hye 2022. 7. 12.

반복문이 무엇일까?

지정된 조건에 만족할 때까지 반복저긍로 수행하는 구문


for - in문

어떤 컬렉션이나 숫자 범위에 포함된 일련의 항목들을 반복하는 데 사용

사용하기 쉬운 반복문 옵션을 제공

for 상수명 in 컬렉션 또는 범위 {
	//code
}

 

- 상수명 : 상수로 사용되는 이름

반복문이 실행되는 컬렉션 또는 범위의 현재 항목을 담게 되는 값

반드시 선언해야하는 것은 아님

 

- 컬렉션 또는 범위: 반복문을 통해 참조

문자열, 범위 연산자, 컬렉션(배열, 딕셔너리, Set)이 될 수 있음

var count = 0

for _ in 1...5 {
	count += 1
} 					// count = 15

 

주의할 점!

중괄호는 변수가 적용가능한 범위를 의미

- 중괄호 내에서 밖의 변수는 접근 가능

- 중괄호 밖에서 중괄호 내의 변수는 접근 불가능


for문의 컬렉션 또는 범위 위치에서 많이 사용되는 함수

- (1...10).reversed() : 숫자를 역순으로 정렬하는 함수

for i in 1...10.reversed() {
	print(i)	// 10, 9 , 8 ,7, 6, 5, 4, 3, 2, 1
}

 

- stride(from: 1, to: 15, by: 2) : 숫자를 특정간격으로 범위를 생성하는 함수

- stride(from: 1, through: 15, by: 2) : 마지막 숫자를 포함하며 특정간격으로 범위를 생성하는 함수

let range = stride(from:1, to: 15, by: 2)

for num in range {
	print(num) 	 // 1, 3, 5, 7, 9, 11, 13 (마지막 숫자는 포함 x)
}

let range2 = stride(from: 1, through: 15, by: 2)

for num in range2 {
	print(num) 	// 1, 3, 5, 7, 9, 11, 13, 15
}

 


while문

조건을 만족하는 동안 중괄호 안의 내용을 계속 반복적으로 실행함

while 참과 거짓을 판단할 수 있는 문장(조건문) {
	//code (조건에 변화를 주는 문장)
}

 

 

주의할 점!

반드시 while문 내에서 조건을 변화시키는 코드 필요

~> 무한 루프에 걸릴 수 있음 ( 코드에서 빠져나올 수 없음)

var myCount = 0

while myCount < 100 {
	myCount += 1
} 						// 99

 

repeat - while문

while문과 동일하지만 조건에 관계없이 일단 문장을 실행하고 난 뒤

조건에 따라 반복적으로 실행할지 여부 확인 후 다시 진행

var i = 1
repeat {
	print(" 3 * \(i) = \(3 * i)")
    i += 1 // 변화를 주는 문장
} while i <= 9

 

 

for문과 while문을 사용하는 차이는 무엇일까?

for 문: 프로그램 내에서 몇 번 반복해야 하는지 알고 있을 경우 유용

(범위, 컬렉션, 문자열, stride 등)

 

while문: 어떤 조건에 만족할때까지 반복해야 하는지 알 수 없는 경우 유용

(조건)


제어 전송문

반복문 내에서 쓰이는 제어전송 명령문(흐름 제어)

 

키워드 사용법 예시
continue 반복문에서 다음 주기로 넘어가서
계속함을 의미
var i = 1

while i < 20 {
      i += 1
      if ( i % 2) != 0 { 
            continue
      } // 홀수일 경우에만 뛰어넘음
      print( " i  = \(i) ")
}  
break 반복문을 아예 중지 var j = 10

for _  in 0..<100 {
      j += j
      if j > 100 {
             break 
      } // j가 100을 넘으면 반복문 종료
      print ( " j = \(j) " )
}

참고자료)

https://zrr.kr/qNHN

 

앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정) 강의 - 인프런

Swift문법을 제대로 이해, 활용해보고자 하는 철학을 바탕으로 과정이 설계되었습니다. 코딩에 대해 1도 모르는 비전공자를 시작으로 네카라쿠배에 입사할 수 있는 초고급 수준까지 올리는 것을

www.inflearn.com

 

Comments