티스토리 뷰

반응형

반복문이란

프로그램 흐름을 좌우하는 문법 중 하나로 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
링크
«   2024/05   »
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 31
글 보관함