大器晩成

기본 연산자 (Basic operators) 본문

iOS/Swift 문법

기본 연산자 (Basic operators)

zerobugpark 2024. 10. 31. 15:45

연산자(Operator)는 값을 체크, 변경, 또는 결합하기 위해 사용하는 기호 또는 구입니다.

연산자란, 어떤 연산을 할지 지정하는 것을 뜻하고, 이때 연산의 대상이 되는 것을 피연산자라고 합니다.

  • x + y가 있을 때, 연산자(Operator)는 + 피연산자(Operand)는 x, y

[피연산자의 개수에 따른 연산자 구분]

  • 단항연산자: 단일 대상의 바로 앞 또는 바로 뒤에 위치하는 연산자입니다.
  • 이항연산자: 두개의 대상의 가운데 위치하여 검사 및 계산합니다. (대부분 이항연산자 형태로 사용)
  • 삼항연산자: 세개의 대상을 조합하여 특수한 계산을 합니다. (단 한 가지의 삼항연산자가 존재)

단항연산자 (Unary Operator)

  • -a 처럼 단일 항목에 동작
  • 단항 접두사는 !b 처럼 항목 바로 직전에 위치합니다.
  • 단항 접미사는 c! 처럼 항목 바로 뒤에 위치합니다.
  • 단항연산자는 공백없이 반드시 붙여서 사용합니다.
  • ex) -a, !a, a!

이항연산자 (Binary Operator)

  • 2 + 3 처럼 2개의 항목에 동작하고 2개의 항목 사이에 위치해야 합니다.
  • 이항연산자는 일반적으로 양쪽에 공백 1칸씩 추가해서 사용합니다.
  • 양쪽을 붙여서 사용하는 것도 가능하지만, 비대칭적 사용은 금지합니다.
  • ex) a + b, a*b

삼항연산자(Ternary Operator)

  • 3개의 항목에 동작합니다.
  • Swift는 하나의 삼항 연산자만 있으며 삼항 조건 연산자 (a ? b : c)입니다.
  • 삼항연산자에서도 모든 사이에 공백을 한 칸씩 추가해서 사용합니다.
  • ex) a ? b : c 의 의미는  "a가 true면 b false면 c" 입니다.
  • 또는 ex) a == true ? b : c 로 사용도 가능합니다.

 

1. 대입/할당 연산자(Assognmnet Operator)

대입 연산자 (Assognmnet operator)(a = b)는 b의 값으로 초기화되거나 업데이트됩니다.

  • 할당 ('='): 변수에 값을 할당.
var number: Int = 10

 

2. 산술 연산자 (Arithmetic Operators)

산술 연산자는 숫가 값을 계산하는 데 사용됩니다. (이항연산자: 연산자를 중심으로 왼쪽과 오른쪽에 표현식이 위치합니다)

연산자 기호 프로그래밍 용어 설명 및 사용 예시
+ 더하기 연산자 더하기
let sum = 5 + 3 // 결과 : 8
- 빼기 연산자 빼기
let difference = 5 - 3 // 결과: 2
* 곱하기 연산자 곱하기
let prooduct = 5 * 3 // 결과: 15
/ 나누기 연산자 나누기 (정수끼리 연산에서는 몫)
let quotient = 10 /2 // 결과 : 5
% 모듈로 연산자
(나머지 연산자)
정수끼리의 연산에서 나머지 (Int 일때만 사용, 즉 정수형 변수에만 사용)
let remainder = 10 % 3 //  결과: 1 , 몫 3에 나머지 1
var num1: Int = 10
var num2: Int = 20

var sum: Int = num1 + num2
print("num1 + num2 = \(sum)입니다") // 출력: num1 + num2 = 30입니다

var sub: Int = num1 - num2
print("num1 - num2 = \(sub)입니다") // 출력: num1 - num2 = -10입니다

var mul: Int = num1 * num2
print("num1 * num2 = \(mul)입니다") // 출력: num1 + num2 = 200입니다

var div: Int = num1 / num2
print("num1 / num2 = \(div)입니다") // 출력: num1 / num2 = 0입니다

var remain: Int = num1 % num2
print("num1 % num2 = \(remain)입니다") // 출력: num1 % num2 = 10입니다


# 나누기 계산은 항상 주의가 필요합니다
var result: Double

result = Double(num1) / Double(num2) //각각 10.0, 20.0으로 형 변환 후 나누기 연산
print(result)  // 출력: 0.5

result = Double(num1 / num2) // 정수 10/20이 먼저 실행 된 후 Double로 형 변환
print(result) // 출력: 0.0

* 연산자 기호 중 +, - 는 단항 연산자로도 사용 가능합니다 (ex: -x, +x)

* 연산 시 타입이 중요하며, 같은 타입의 데이터끼리만 연산 및 저장이 가능합니다

 

3. 복합 할당 연산자 (Compound Assignment  Operator)

다른 연산과 할당을 동시에 수행합니다.

var number = 10
number += 5  // number = number + 5 (결과: 15)
number -= 3  // number = number - 3 (결과: 12)
number *= 2  // number = number * 2 (결과: 24)
number /= 4  // number = number / 4 (결과: 6)
number %= 2  // number = number % 2 (결과: 0)

 

4. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교하여 Bool(참 또는 거짓) 타입의 결과를 반환합니다.

수학적 기호 프로그래밍 기호 의미 예시
= == 같다 let isEqual = (5 == 5)  // 결과: true
!= 같지 않다 let isNotEqual = (5 != 3)  // 결과: true
> > 작다 let isLessThan = (3 < 5)  // 결과: true
< < 크다 let isGreaterThan = (5 > 3)  // 결과: true
<= 작거나 같다 let isLessThanOrEqual = (3 <= 5)  // 결과: true
>= 크거나 같다 let isGreaterThanOrEqual = (5 >= 3)  // 결과: true
# 같다(Equal to operator)
print(num1 == num2) // 출력: false

# 같지 않다(Not equal to operator)
print(num1 != num2) // 출력: true

# 크다(Greater than operator)
print(num1 > num2) // 출력: false

# 크거나 같다(Greater than or equal to operator)
print(num1 >= num2) // 출력: false

# 작다(Less than operator)
print(num1 < num2) // 출력: true

# 작거나 같다(Less than or equal to operator)
print(num1 <= num2) // true

 

5. 논리 연산자 (Logical Operators)

논리 연산자는 Bool(참 또는 거짓) 타입의 값을 결합하거나 부정합니다. 결과값 또한 Bool 타입의 결과를 반환합니다.

논리연산자 의미 예시
! 논리적 NOT, 논리 값을 반전 시킨다. let isNotTrue = !true  // 결과: false
&& 논리적 AND, 두 값이 모두 true일 때만 true를 반환합니다. let isTrue = true && true  // 결과: true
let isFalse = true && false  // 결과: false
|| 논리적 AND, 두 값 중 하나라도 true일 때만 true를 반환합니다. let isTrue = true || false  // 결과: true
let isFalse = false || false  // 결과: false
# Logical NOT Operator //결과를 뒤집는 연산자(반대)
print(!true) // 출력: false
print(!false) // 출력: true


# Logical AND Operator(앤드, 그리고)
print(true && true) // 출력: true
print(true && false) // 출력: false
print(false && true) // 출력: false
print(false && false) // 출력: true


# Logical OR Operator(또는)
print(true || true) // 출력: true
print(true || false) // 출력: true
print(false || true) // 출력: true
print(false || false) // 출력: false

 

6. 점 연산자 (Dot operator)

점 연산자('.')는 객체의 속성이나 매서드에 접근할 때 사용됩니다. (하위 개념으로 들어갑니다.)

var name = "Zerobug"

print(name.count) //출력: 7

print(name.isEmpty) // 출력: false
var check = !name.isEmpty // !(name.isEmpty) == !name.isEmpty
print(check) // 출력: true
  • 속성 접근
class Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

let person = Person(name: "John", age: 30)
print(person.name)  // 출력: John
print(person.age)   // 출력: 30

 

7. 연산자 우선순위 

우선순위
(숫자가 낮을수록 우선순위가 높다)
연산자 설명
1 '()' 괄호
2 '.' 멤버 접근
3 '!', ' ~', '+', '-' 논리 NOT, 비트 NOT, 단항 덧셈, 단항 뺄셈
4 '*',  '/',  '%' 곱셈, 나눗셈, 나머지
5 '+', '-' 덧셈, 뺄셈
6 '<<', '>>' 비트 왼쪽 시프트, 비트 오른쪽 시프트
7 '<', '<=', '>', '>=' 비교 연산자
8 '==', '!=' 동등 비교, 같지 않음 비교
9 '&&' 논리 AND
10 '||' 논리 OR
11 '?:' 삼항 조건 연산자
12 '=', '+=', '-=', '*=', '/=', '%=', '<=', '>=' 할당 및 복합 할당 연산자
13 ?? Nil 병합 연산자

*연산자 우선 순위 참고 

https://developer.apple.com/documentation/swift/swift_standard_library/operator_declarations

 

Operator Declarations | Apple Developer Documentation

Work with prefix, postfix, and infix operators.

developer.apple.com

728x90

'iOS > Swift 문법' 카테고리의 다른 글

조건문(If문)  (0) 2024.10.31
범위 연산자 (Range Operators)  (0) 2024.10.31
타입 에일리어스(Type Alias)  (0) 2024.10.31
변수와 타입  (2) 2024.10.31
기본 데이터 타입  (0) 2024.10.31