大器晩成
기본 연산자 (Basic operators) 본문
연산자(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
'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 |