본문 바로가기
swift

스위프트 연산자

by 승환파크 2024. 4. 3.

산술 연산자

산술 연산자는 말 그대로 사칙 연산에 대한 연산자들이다. 스위프트에서는 다른 프로그래밍 언어에서 제공하는 것과 거의 동일하게 아래 산술 연산자 6개를 지원한다.

구분 연산자 사용 예 의미
단항 연산자 - "-a" 값의 부호를 변경
이항 연산자 + a + b 두 개의 값을 더함
- a - b 연산자 앞의 값에서 뒤의 값을 뺌
* a * b 두 개의 값을 곱함
/ a / b 연산자 앞의 값을 뒤의 값으로 나눔
% a % b 연산자 앞의 값을 뒤의 값으로 나눈 나머지

 

 

비교 연산자

비교 연산자는 연산의 결과가 항상 true 또는 false 두 가지 중 하나로만 나타난다는 특성을 가지고 있다. 비교 연산자의 연산 결과는 항상 Bool 타입의 값으로 표시된다.

연산자 사용 예 의미
< a < b a가 b보다 작으면 true, 그렇지 않으면 false
> a > b a가 b보다 크면 true, 그렇지 않으면 false
<= a <= b a가 b보다 작거나 같으면 true, 그렇지 않으면 false
>= a >= b a가 b보다 크거나 같으면 true, 그렇지 않으면 false
== a == b a가 b와 같으면 true, 그렇지 않으면 false
!= a != b a가 b와 같지 않으면 true, 그렇지 않으면 false

 

 

논리 연산자

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

연산자 사용 예 의미
! (NOT) !a a가 true이면 false, false 이면 true
&& (AND) a && b a와 b 모두 true 일 때 true, 둘 중 하나라도 false 라면 false 반환
|| (OR) a || b a 혹은 b 둘 중 하나라도 true 라면 true, 둘 다 false 일 때 false 반환

 

 

논리 연산자를 비교 연산자와 결합하여 사용하는 방법

범위 연산자

범위 연산자는(fange 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 ~ in 구문의 반복에 따른 값의 변화이다. 닫힌 범위 연산자를 사용하였으므로 반복문 안의 내용은 총 5회 반복되며 그때마다 값이 세로축에 나타난다. 축에 정확한 값이 표기되어 있지는 않지만 차례차례 값이 늘어나는 것이 보인다.

 

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

 

대입 연산자

대입 연산자는 값을 변수에 대입하고자 할 때 사용하는 연산자이다. 프로그래밍에서 대입의 기본은 왼쪽 객체에 오른쪽의 값을 대입하는 것이지만, 그런 목적이라면 대입 연산자는 하나만 있어도 충분하다. 나머지 대입 연산자들이 존재하는 것은 여러 행에 걸쳐서 써야 하거나 복잡하게 써서 읽기 어려운 소스를 간결하게 하기 위한 목적이 있다.

대입 연산자 사용 예시 의미
"=" a = 1 변수 a에 1을 대입
"+=" a += 1 a = a + 1
"-=" a -= 3 a = a - 3
"*=" a *= 3 a = a * 3
"/=" a /= 3 a = a / 3
"%=" a %= 3 a = a % 3
"<<=" a <<= 3 a = a << 3
">>=" a >>= 3 a = a >> 3
"&=" a &= b a = a & b
"^=" a ^= b a = a ^ b
"|=" a |= b a = a | b

'swift' 카테고리의 다른 글

스위프트 조건문  (0) 2024.04.06
스위프트 반복문  (1) 2024.04.05
스위프트 자료형  (1) 2024.04.03
스위프트 변수와 상수  (2) 2024.04.03
스위프트 기초 문법  (0) 2024.04.02