3.4.4 범위 연산자

범위 연산자(range operator)는 스위프트에서 제공하는 독특한 연산자입니다. 주어진 값으로 특별한 연산을 수행하는 것이 아니라 주어진 값 사이의 범위를 일정한 정수 간격으로 표현하는 연산자로서, 닫힌 범위 연산자와 반 닫힌 범위 연산자 두 가지 종류가 있습니다.

닫힌 범위 연산자

닫힌 범위 연산자는 주어진 피연산자 a, b를 포함하는 범위를 나타내는 연산자입니다. 닫힌 범위 연산자를 나타내는 기호는 주어진 두 개의 피연산자 사이를 세 개의 점으로 표현하는 것으로서 1 부터 5까지의 범위를 1과 5를 포함해서 나타내고자 할 경우 다음과 같이 표현합니다.

1 ... 5

이렇게 표시 했을 때의 범위 연산자가 나타내는 값은 1, 2, 3, 4, 5 입니다.

반 닫힌 범위 연산자

반 닫힌 범위 연산자에서 '반'이란 반대가 아닌 절반을 이야기힙니다. 해석하자면 절반만 닫힌 연산자라는 뜻으로, 연산자의 양쪽 경계 중에서 왼쪽 경계는 포함하되 오른쪽 경계는 포함하지 않는 연산자 입니다. 반 닫힌 연산자는 다음과 같이 점 두 개와 비교 연산자 '<'를 사용하여 표현합니다.

1 ..< 5

이렇게 표시했을 때의 범위 연산자가 나타내는 값은 1, 2, 3, 4까지이며 앞서 설명한 대로 5는 포함하지 않습니다. 반 닫힌 범위 연산자를 사용하여 5까지 나타내려면 오른쪽 피연산자를 6으로 설정해야합니다.

범위 연산자의 왼쪽과 오른쪽 값도 마찬가지입니다. 범위 연산자의 왼쪽에는 작은 숫자를, 오른쪽에는 그보다 큰 숫자를 배치해야 합니다.

범위 연산자의 활용

닫힌 범위 연산자는 양쪽 값 모두를 포함하는 특성 때문에 for ~ in 구문에서 일정 횟수만큼 반복 할 때 사용되는 경우가 많습니다. 반면에, 반 닫힌 연산자는 마지막 값을 범위에 포함하지 않는 특성이 배열의 인덱스와 일치하기 때문에 배열을 순회할 때 많이 사용됩니다.

아직 for 키워드를 사용한 반복문을 배우지는 않았지만, for ~ in 구문은 주어진 범위를 반복하는 구문이라는 것만 생각하고 플레이그라운드를 통하여 두 범위 연산자의 처리 결과를 확인해봅시다.

먼저 닫힌 범위 연산자의 결과입니다. 그래프에서 표시된 내용은 for ~ in 구문의 반복에 따른 값의 변화입니다. 닫힌 범위 연산자를 사용하였으므로 반복문 안의 내용은 총 5회 반복되며 그때마다 값이 세로축에 나타납니다. 축에 정확한 값이 표시되어 있지는 않지만 차례차례 값이 늘어나는 것이 보입니다.

1부터 5까지의 반 닫힌 연산자는 마지막 5를 제외한 범위 내의 정수 1, 2, 3, 4를 표현합니다. 따라서 for ~ in 구문의 반복 횟수는 모두 4회이며, 반복마다 값을 받아오는 변수인 row를 확인해보면 위 그래프와 같이 닫힌 범위 연산자의 결과보다 하나 작은 값의 변화를 보여줍니다.

Last updated