티스토리 뷰
반복문이란
프로그램 흐름을 좌우하는 문법 중 하나로 if와 함께 가장 많이 쓰이는 문법 중 하나이다.
for, while 은 반복문이라 하며, 반복적인 일을 수행하기에 가장 기본이 되고 적합한 문법이다.
다음과 같은 배열이 있다고 생각해보자.
let arrays = [1, 2, 3, 4, 5]
arrays는 크기가 5이기 때문에
print(arrays[0]) // 1
print(arrays[1]) // 2
print(arrays[2]) // 3
print(arrays[3]) // 4
print(arrays[4]) // 5
이렇게 5번만 프린트하면, 모든 원소를 화면에 출력할 수 있다.
하지만 arrays라는 배열이 크기가 5가아닌 100이 되었다고 생각해보자.
이와 같은 일을 100번을 해야 배열 안의 모든 원소를 화면에 출력할 수 있다.
크기가 더욱 커진다면 그만큼 일일이 출력을 해야하기 때문에 이보다 더 비효율적일 수가 없다.
이런 비효율적인 부분을 채워주는 문법이 바로 반복문 이다.
1. for
기본적인 사용방법은 다음과 같다.
for [임시 변수] in [범위] {
[code]
}
그럼 이제 arrays라는 배열의 원소를 하나하나 출력해보자.
만약, 배열 내의 원소를 하나하나 차례대로 출력하고 싶다면, 다음과 같이 간단하게 작성할 수 있다.
for array in arrays {
print(array)
}
범위를 직접 지정해 줄 수도 있다.
for i in 0...4 {
print(arrays[i])
}
이렇게 작성할 수도 있지만, 이것또한 매우 비효율적일 수 있다.
아래와 같이 arrays.count를 사용해보자.
for i in 0...arrays.count {
print(arrays[i])}
위와 같이 .count를 사용하면 배열이 가변적이더라도 일일이 고칠 필요가 없다.
하지만 위와같이 작성하게 된다면 IndexOutBound 에러가 뜰 것이다.
가장 기본적인 부분이지만 가장 실수를 많이하는 부분이기도 하다.
배열은 Position값이 0부터 시작하기 때문에 개수보다 하나 작은 수까지 반복해주어야 한다.
따라서,
for i in 0...arrays.count - 1 {}
또는
for i in 0..<arrays.count {}
이렇게 사용해야 한다.
여기서 ..< 는 해당 숫자를 포함하지 않는 범위까지 반복한다는 의미이다.
2. stride
반복문을 사용하다 보면, 증가하는 반복문을 대체적으로 많이쓰지만 감소하는 반복문을 쓰기도 한다.
swift에서는 stride라는 함수를 제공한다.
1씩 증감을 직접 설정해 줄 수 있고, 1뿐만 아니라 원하는 수치만큼 증감을 해줄 수 있다.
사용법은 간단하다.
for i in stride(from:4, through: 0, by: -1 ) {
print(arrays[i])
// 5
// 4
// 3
// 2
// 1
}
여기서는 to: 가 아닌 through: 를 사용하였다.
0을 포함하기 때문에 through를 사용하였고, to를 사용하게되면 0을 포함하지 않는다.
반복문에는 for 이외에 while이라는 반복문도 존재한다.
while은 다음 포스팅에서 알아보자 :-)
'iOS > Swift' 카테고리의 다른 글
[Swift] Swinject 사용법 (0) | 2021.04.29 |
---|---|
[Swift] UIButton 에 image 가 나오지 않을 때 (0) | 2021.01.25 |
[Swift] AlertDialog 만들기 (0) | 2020.07.31 |
[swift] 화면 전환하는 방법 (0) | 2020.07.29 |
[Swift] 함수 (0) | 2020.07.17 |
- Total
- Today
- Yesterday
- sqld 자격증 합격
- Xcode
- NoAnimation
- 격파르타 장점
- Android
- Kotlin
- 함수
- 자바
- 안드로이드
- IOS
- toml
- 변수
- dart
- 아이폰앱개발
- 버전카타로그
- rotation
- 연산자
- 음성재생
- 스위프트
- Swift
- ~=
- 코틀린
- gem update
- 격파르타 합격후기
- 격파르타 후기
- Java
- rotate
- .toml
- 아이폰
- FLUTTER
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |