7. 반복문
반복문은 배열이나 Dictionary 같은 Collection Type이나 범위를 반복적으로 접근할 때 사용합니다.
let array = [1, 2, 3, 4, 5]
// [ ] 안에 데이터들을 넣으면 1,2,3,4,5가 들어가 있는 배열이 만들어집니다.
["봄", "여름", "가을", "겨울"] // 봄, 여름, 가을, 겨울이 저장되어 있는 배열이에요!
for in 을 사용하면 배열(Collection Type)과 범위의 숫자를 반복할 수 있습니다.
// 컬렉션 타입에 대한 for in 반복문
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
print(name)
}
// 출력 값
// Anna
// Alex
// Brian
// Jack
// 해석
let names = ["Anna", "Alex", "Brian", "Jack"] // names 상수에 배열로 순서대로 "Anna", "Alex", "Brian", "Jack"을 넣습니다.
for name in names { // names 배열 안에 있는 값들을 반복하여 아래 코드블록을 실행합니다. name에 배열의 데이터를 넣습니다.
print(name)
}
// 숫자의 범위를 사용한 for in 반복문
for index in 0...5 {
print(index)
}
// 출력 값
// 0
// 1
// 2
// 3
// 4
// 5
// 한국어 번역
for index in 0...5 {
// 0이상 5까지 숫자를 index에 할당하며 반복합니다.
print(index)
}
// while 뒤에 조건을 입력하여 사용합니다. 조건이 true이면 코드블록을 실행하고 false이면 코드블록이 실행되지 않고 다음으로 넘어갑니다.
while 조건 {
// 반복 실행할 코드
}
var happyNewYearCount = 10
while happyNewYearCount > 0 {
print(happyNewYearCount)
happyNewYearCount -= 1
}
print("새해 복 많이 받으세요 :)")
/*
출력 값
10
9
8
7
6
5
4
3
2
1
새해 복 많이 받으세요 :)
*/
// 한국말로 풀어보기.
var happyNewYearCount = 10
// happyNewYearCount라는 이름의 변수에 10을 할당합니다.
while happyNewYearCount > 0 {
// happyNewYearCount가 0보다 크다면 코드블록을 반복하여 실행합니다.
print(happyNewYearCount)
happyNewYearCount -= 1 // happyNewYearCount에 1을 뺀 값을 할당합니다.
}
print("새해 복 많이 받으세요 :)")
while true {
print("결과가 항상 true여서 영원히 while 코드블록이 실행됩니다 🥲")
}
반복문에서 흐름제어를 도와주는 break continue(크고 진하게)
// for 반복문에서 더이상 반복이 필요없는 경우
for age in 15...99 {
print(age)
if age >= 20 {
break
}
}
/*
출력값 :
15
16
17
18
19
20
*/
// 한국말로 풀어보기
for age in 15...99 {
// 15이상 99까지 반복하여 코드블록을 실행합니다. 현재 숫자는 age에 넣습니다.
print(age)
if age >= 20 { // age가 20이상이면 코드블록을 실행합니다.
break // 반복문을 종료합니다.
}
}
// while 반복문에서 더이상 반복이 필요없는 경우
var age = 15
while age < 100 {
print(age)
if age >= 20 {
break
}
age += 1
}
/*
출력값 :
15
16
17
18
19
20
*/
// 한국말로 풀어보기
var age = 15 // age라는 이름의 변수에 값 15를 할당합니다.
while age < 100 { // age가 100 미만일 때 반복적으로 코드블록을 호출합니다.
print(age)
if age >= 20 { // 만약 age가 20보다 크거나 같을 때 아래 코드블록을 실행합니다.
break // 반복문을 종료합니다.
}
age += 1 // age에 1을 더한 값을 할당합니다.
}
// 1. 조건문 switch에서 특정 case에서 아무런 행동을 하고싶지 않을 때
var age = 15
switch age {
case 15:
break
default:
print("15가 아니에요")
}
// case에서 아무런 행동을 하지 않을 때 코드가 없으면 빌드오류가 발생하기 때문에 break문을 사용합니다.
// 2. 조건문 switch에서 코드 중에 탈출하고 싶을 때
let score = 50
switch score {
case 50...:
print("50점 이상이시군요")
fallthrough
case 50:
print("딱 50점이시네요?")
break
print("저는 80점인데요~")
default:
print("공부를 더 하세요!")
}
/*
출력 값:
50점 이상이시군요
딱 50점이시네요?
*/
// 한국말로 풀어보기.
let score = 50 // score 라는 이름의 상수에 값 50을 할당합니다.
switch score { // score 상수를 switch 조건문 코드블록으로 넣습니다.
case 50...: // 50이상일 때 아래의 코드가 호출됩니다.
print("50점 이상이시군요")
fallthrough // 아래의 case도 확인합니다.
case 50: // score가 50일 때 아래의 코드를 호출합니다.
print("딱 50점이시네요?")
break // switch 코드블록
print("저는 80점인데요~") // 위에서 break를 사용하여 switch에서 탈출하여 실행되지 않는 코드입니다.
default:
print("공부를 더 하세요!")
}
// for in 에서 continue를 사용하여 반복문을 건너뛰는 방법
for number in 1...5 {
if number % 2 == 0 {
continue
}
print(number)
}
/*
출력 값
1
3
5
*/
// 한국말로 풀어보기
for number in 1...5 { // 1이상 5이하까지 반복합니다. 현재 숫자는 number에 넣습니다.
if number % 2 == 0 { // number 에서 2를 나눴을 때 나머지가 0이면 아래의 코드블록을 실행합니다.
continue // 다음 반복문으로 바로 이동합니다. 아래의 코드는 실행하지 않습니다.
}
print(number)
}
// while에서 continue를 사용하여 반복문을 건너뛰는 방법
var number = 0
while number < 5 {
number += 1
if number % 2 == 1 {
continue
}
print(number)
}
/*
출력 값
2
4
*/
// 한국말로 풀어보기
var number = 0 // 변수 number에 0 값을 할당합니다.
while number < 5 { // number가 5 미만일 때 반복합니다.
number += 1 // number에 1을 더한값을 할당합니다.
if number % 2 == 1 { // number에 2를 나눈 나머지 값이 1일 때 코드블록을 실행합니다.
continue
}
print(number)
}