1. 반복문
1) for문
: 범위 or 컬렉션에서 item을 한개씩 뽑아, 중괄호 안에서 반복 실행함
for item in 범위 or 컬렉션 {
//code
}
for index in 1...5 {
print("For문 출력해보기: \\(index)")
}
/* 출력 :
For문 출력해보기: 1
For문 출력해보기: 2
For문 출력해보기: 3
For문 출력해보기: 4
For문 출력해보기: 5
*/
- 스트링 인터폴레이션을 사용한 반복문 출력
for index in 1...4 {
print("\\(index)에 5를 곱하면 \\(index * 5)")
}
/* 출력 :
1에 5를 곱하면 5
2에 5를 곱하면 10
3에 5를 곱하면 15
4에 5를 곱하면 20
*/
배열 등 컬렉션 타입에서도 사용 가능
let list = ["Swift", "Programming", "Language"]
for str in list {
print(str)
}
/* 출력 :
Swift
Programming
Language
*/
문자열에서도 사용 가능
: 문자열에서 각 문자를 차례 차례 한개씩 뽑아서 중괄호 안에서 사용
for chr in "Hello" {
print(chr, terminator: " ")
}
/*
출력 : H e l l o
*/
→ 이때 chr의 타입은 character 타입이다.
💡 print(chr, terminator: " ") : 개행하지 않고, 한 칸 띄우는 방식으로 출력
딕셔너리에서도 사용 가능
let students = ["Bae":12, "Chio":1, "Kim":3]
for (key, value) in students{
print("\\(key)는 공부를 \\(value)등 했어")
}
/* 출력 :
Chio는 공부를 1등 했어
Bae는 공부를 12등 했어
Kim는 공부를 3등 했어
*/
→ 딕셔너리를 for문에 넣으면 튜플로 key값과 value 값을 분리할 수 있음
특정한 함수 활용 가능
- reversed : 숫자를 역순으로 정렬하는 함수
for number in (1...5).reversed() {
print(number)
}
/* 결과 :
4
3
2
1
*/
- stride : 숫자를 특정간격(띄엄띄엄)으로 범위를 생성하는 함수 ( stride : 성큼성큼 걷다 )
for number in stride(from: 1, to: 15, by: 2) {
print(number)
}
/* 출력 :
1
3
5
7
9
11
13
*/
→ to 는 마지막 숫자를 포함하지 않는다.
→ 1 ~ 14까지 2단계씩 증가
for number in stride(from: 1, through: 15, by: 2) {
print(number)
}
→ through 는 마지막 숫자를 포함한다.
→ 1 ~ 15까지 2단계씩 증가
💡 stride(from: to: by) : from에서부터 to값 전까지 by만큼 증가하기
💡 stride(from: through: by) : from에서부터 from까지 by만큼 증가하기
2) for문 사용시 주의점
for문의 임시 상수
for item in 1...5 {
print(item)
}
- 즉, item은 for문의 주기를 한바퀴 돌때마다 let item 이라는 상수에 값을 대입하는 것이다.
- 만약 임시 상수를 반복문안에서 변경하고 싶다면, 새로운 변수로 선언한 후 변경해야한다.
for item in 1...5 {
//item += 1 error!
print(item)
}
for item in 1...5 {
var a = item
a += 1
print(a)
}
/* 출력 :
2
3
4
5
6
*/
print(item) //error
- for문에서 선언하는 변수는 for문 내에서만 사용이 가능(Scope와 관련)
- 반복문의 외부에서 for문 안에서 선언하는 변수를 접근 할 수 없다.
- for문의 외부에서 선언한 변수는 for문의 내부에서 접근 가능하다.