코틀린의 연산자와 이 연산자들의 우선순위를 알아보자
# 산술 연산자
- 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산을 수행하는 연산자다
연산자 | 설명 | 예 |
+ | 덧셈 | a + b |
- | 뺄셈 | a - b |
* | 곱셈 | a * b |
/ | 나눗셈 | a / b |
% | 나머지 | a % b |
// 산술 연산자
var a = 6
var b = 4
var quotient = a / b // 1
var remainder = a % b // 2
# 대입 연산자
- 변수에 값을 대입(할당) 할때 사용하는 연산자다
연산자 | 설명 | 예 |
= | 값 대입(할당) | a = 10 |
# 복합 대입 연산자
- 복합 대입 연산자는 대입연산자와 산술연산자를 결합한것으로, 결과를 왼쪽 변수에 대입한다
연산자 | 설명 | 예 |
+= | A에 B를 더한 결과를 A에 할당 / A = A +B | a += b |
-= | A에 B를 뺀 결과를 A에 할당 / A = A - B | a -= b |
*= | A에 B를 곱한 결과를 A에 할당 / A = A * B | a *= b |
/= | A에 B를 나눈 결과를 A에 할당 / A = A /B | a /= b |
%= | A에 B를 나눴을때 나오는 나머지 결과를 A에 할당 / A = A %B | a %= b |
// 복합대입연산자
var a = 6
var b = 3
a += b // a = 9
b -= 2 // b = 1
a *= b // a = 18
b /= 2 // b = 1
a %= 3 // a = 0
# 증감 연산자
- 변수의 값을 1씩 증가하거나 감소하는 연산자다
연산자 | 설명 | 예 |
++ | 1씩 증가 | a++, ++a |
-- | 1씩 감소 | a--, --a |
증감연산자를 어디에 붙이느냐에 따라서 값이 달라지는데,
++a와 같이 연산자를 앞에 붙일경우, +1을 먼저 해주고 값을 대입해줘야한다
a++과 같이 연산자를 뒤에 붙일경우, a의 값을 먼저 대입해주고 +1을 해줘야한다
이건 예제와 함께봐야지 이해가 잘된다
var a = 100
var b = 50
println(a++ +b) // 150
println(a) // 101
println(--b) // 49
println(b--) // 49
a++ +b에서 a++은 a는 일단 100이고 +1은 적립해둔다고 생각하자!!
그래서 a++ +b는 100 + 50 해서 150이 된다
이제 그 다음줄에서 a는 아까 적립해둔 1을 써야된다!!!
따라서 100+1 을 해서 101이 된다
이제 --b는 먼저 -1을 해줘야되기 때문에 50-1 을 해서 49가 된다
여기서 b--를 하면 -1은 적립해둘거니깐 그대로 49가된다
(만약에 다음줄에 b가 또 나온다면 그땐 적립해뒀던 -1을 먼저 적용해준뒤에 연산해줘야겠죠??)
# 비교 연산자
- 비교를 해주는 연산자다
- 두 변수 객체를 비교하여, 결과가 Boolean의 형식인 true 또는 false로 나온다
연산자 | 설명 | 예 |
== | 2개 항의 값이 같으면 true, 아니면 false | a == b |
!= | 2개 항의 값이 다르면 true, 아니면 false | a != b |
< | 왼쪽이 작으면 true, 크면 false | a < b |
> | 왼쪽이 크면 true, 작으면 false | a > b |
<= | 왼쪽이 작거나 같으면 true, 아니면 false | a <= b |
>= | 왼쪽이 크거나 같으면 true, 아니면 false | a >= b |
=== | 객체가 같으면 ture, 아니면 false | a === b |
!== | 객체가 다르면 ture, 아니면 false | a !== b |
== 와 ===은 비슷해보이지만 의미가 다르다
== 일 경우, 값을 비교하여 두 객체의 값이 동일한지의 여부를 확인한다
===일 경우, 객체를 비교하여 두 객체가 같은 객체인지의 여부를 확인한다
# 논리 연산자
- 참 / 거짓을 판단하는 논리식에서 사용되는 연산자로, 두개 이상의 조건을 판단하여 결과를 Boolean의 형식인 true 또는 false로 반환한다
연산자 | 설명 | 예 |
&& | 논리곱( AND ) / 두 항이 모두 true일 때에는 true, 아니면 false | a && b |
|| | 논리합( OR ) / 두 항 중 하나의 항이 true일 때에는 true, 아니면 false | a || b |
! | 부정 단항 연산자( NOT ) / true를 false로, false를 true로 바꿈 | !a |
# 비트 연산자
- 비트 단위의 연산을 수행하는 연산자이다
- 이진수를 다루며, 정수형에서만 사용할수있다
연산자 | 설명 | 예 |
and | 비트의 AND 연산 | a and b |
or | 비트의 OR 연산 | a or b |
xor | 비트의 XOR 연산 | a xor b |
inv | 비트 반전 연산 | a inv b |
shl | 왼쪽 시프트 연산 | a shl b |
shr | 오른쪽 시프트 연산 | a shr b |
ushr | 부호없는 오른쪽 시프트 연산 | a ushrb |
# 연산자 우선순위
우선순위 | 연산자 | 설명 |
1 | () | 괄호 |
2 | ! , ++ , -- | 논리 부정, 증감 연산자(전위) |
3 | * , / , % | 곱셈, 나눗셈, 나머지 연산 |
4 | + , - | 덧셈, 뺄셈 |
5 | in , !in | 범위 검사 |
6 | < , <= , > , >= | 작음, 작거나 같음, 큼, 크거나 같음 |
7 | == , != | 같음, 다름 |
8 | & | 비트 논리곱 |
9 | ^ | 비트 배타적 논리합 |
10 | | | 비트 논리합 |
11 | && | 논리곱 |
12 | || | 논리합 |
13 | ?: | 엘비스 연산자 |
14 | = , += , -= , *=, %= , &= , |= , ^= , shr= , shl= , ushr= | 대입 연산자, 복합대입연산 |
'개발 노트 > Kotlin' 카테고리의 다른 글
[kotlin] 문법 1주차 정리 - 기초 (1) | 2024.03.05 |
---|---|
파이어베이스 이미지URL을 통해 이미지 불러오기 (0) | 2024.03.03 |
[kotlin] putExtra로 key값 전달!! (0) | 2024.02.28 |
[kotlin]Recyclerview Adpater부분에서 Glide를 통해 이미지 표시하는법 (0) | 2024.02.26 |
[kotlin] viewpager 스와이프 막기 (0) | 2024.02.26 |