본문 바로가기
Swift

[Swift] Array.count에서 오류가 난 이유?

by ykr0919 2023. 11. 16.

 

 

최근 코테를 공부하다가  인덱스 범위를 벗어났다는데 이게 무슨 말이지?? 한번 해결해 보자!! 

 

코드를 보면 remain 배열의 개수까지 반복을 돌려보려고 했는데 오류가 생겼다. 

우선 count는 배열의 개수를 리턴을 해준다. 

 

let Array = [1,2,3,4,5]

print(Array.count) //5

 

그럼 for문을 사용해서 왜 저런 오류가 났는지 살펴보자! 

 

let Array = [1,2,3,4,5]

for i in 0...Array.count {
    print(i, terminator: "")
} // 012345

 

0부터 Array.count까지 반복을 실행하면 012345가 출력된다. 배열은 0부터 시작하기 때문에 배열에 5개가 들어가 있으면 01234까지 존재한다. 하지만 for문에서 Array.count까지 반복을 하면서 4를 넘긴 5까지 반복을 하게 된 것이다. 왜냐?? 위에서 Array.count를 출력해 보니깐 5가 나왔다 그 말은 0부터 5까지 반복한다는 말과 같다. 5는 배열에서 존재하지 않는다. 그래서 인덱스 범위를 벗어났다는 오류가 생긴 것이다. 

 

let Array = [1,2,3,4,5]

for i in 0..<Array.count {
    print(i, terminator: "")
} // 01234

 

이렇게 반복문의 범위를 다시 지정해 주면 

 

 

에러가 사라졌다. 이제 count를 통해 배열 안의 개수를 받아서 사용할 때는 반복문의 범위를 잘 지정해 주자!!! 

'Swift' 카테고리의 다른 글

[Swift] forEach(_:) 알아보기  (2) 2024.02.17
[Swift] Dictionary  (2) 2024.01.01
[Swift] 삼항연산자  (2) 2023.12.29
[Swift] map{ Int($0)! } vs map{ Int(String($0))! }  (2) 2023.11.18
[Swift] Swift의 $0구문은 어떻게 나온걸까?  (0) 2023.11.06