연산자의 기호나 쓰임새는 대부분 프로그래밍 언어에서 크게 다르지 않습니다.
다만, 스위프트에서는 범위 연산자처럼 C, C++, 자바 등 다른 대중적인 프로그래밍 언어에는 없는
새로운 연산자도 있으니 이 부분은 꼭 학습하고 넘어가기 바랍니다.
산술 연산자
산술 연산자는 말 그대로 사칙 연산에 대한 연산자들입니다.
스위프트에서는 다른 프로그래밍 언어에서 제공하는 것과 거의 동일하게 다음 산술 연산자 6개를 지원합니다.

산술 연산자의 종류

산술 연산자를 사용하는 모습
비교 연산자
이번에 학습할 비교 연산자는 연산의 결과가 항상 true 또는 false 두 가지 중 하나로만 나타난다는 특성을 가지고 있습니다.
비교 연산자의 연산 결과는 항상 Bool 타입의 값으로 표시됩니다.
연산 결과가 항상 Bool 타입인 것은 다음 순서에서 배울 논리 연산자도 마찬가지 입니다.

논리 연산자
논리 연산자는 연산 결과를 true나 false로 표시한다는 점에서 비교 연산자와 동일하지만,
값의 크기를 비교하는 비교 연산자와는 달리 주어진 값의 논리 비교(true 또는 false)를 통해 연산을 수행합니다.
이를 위해 논리 연산자의 연산 대상인 피연산자들은 모두 true 또는 false값을 가지는 Bool 타입이어야 합니다.
연산자의 종류부터 확인해봅시다.

// && 연산자 테스트
true && true // = true
false && false // = false
true && false // = false
false && true // = false
// || 연산자 테스트
true || true // = true
false || false // = false
true || false // = true
false || true // = true
논리 연산자를 비교 연산자와 결합하여 어떻게 사용하는지 확인해 봅시다.
// Int타입 상수 선언
let a = 10
let b = 5
let c = 2
// 비교 연산자와 함께 사용하는 경우
a > b && b > c // true && true = true
a == b && a > b // false && true = false
a == b || a > b // false || true = true
// 비교, 산술 연산자와 함께 사용하는 경우
a - b > b - c && b == 0 // true && false = false
a + b > c || c > 0 // true || true = true
범위 연산자
범위 연산자(range operator)는 스위프트에서 제공하는 독특한 연산자입니다.
주어진 값으로 특별한 연산을 수행하는 것이 아니라 주어진 값 사이의 범위를 일정한 정수 간격으로 표현하는 연산자로서,
닫힌 범위 연산자와 반 닫힌 범위 연산자 두 가지 종류가 있습니다.
닫힌 범위 연산자
닫힌 범위 연산자는 주어진 피연산자 a, b를 포함하는 범위를 나타내는 연산자입니다. 닫힌 범위 연산자를 나타내는 기호는 주어진 두 개의 피연산자 사이를 세 개의 점으로 표현하는 것으로서 1 부터 5까지의 범위를 1과 5를 포함해서 나타내고자 할 경우 다음과 같이 표현합니다.
이렇게 표시 했을 때의 범위 연산자가 나타내는 값은 1, 2, 3, 4, 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를 확인해보면 위 그래프와 같이
닫힌 범위 연산자의 결과보다 하나 작은 값의 변화를 보여줍니다.
대입 연산자
대입 연산자는 값을 변수에 대입하고자 할 때 사용하는 연산자입니다.
프로그래밍에서 대입의 기본은 왼쪽의 객체에 오른쪽의 값을 대입하는 것이지만,
그런 목적이라면 대입 연산자는 하나만 있어도 충분합니다.
나머지 대입 연산자들이 존재하는 것은 여러 행에 걸쳐서 써야 하거나
복잡하게 써서 읽기 어려운 소스를 간결하게 하기 위한 목적이 있습니다.

'IOS > Swift' 카테고리의 다른 글
[Swift] 개발에 필요한 기초 지식 (정리편) (5) | 2024.11.15 |
---|---|
Swift 기초 문법 정리본 (0) | 2024.02.24 |
Swift 자료형 (0) | 2024.02.18 |
Swift 변수와 상수 (0) | 2024.02.18 |
Swift 간단 기초 문법 (0) | 2024.02.18 |