티스토리 뷰
연산자
1. 산술 연산자
• 기본적인 사칙 연산을 하기 위한 연산자.
• +, -, *, /, %
- %는 나머지를 반환하는 연산자이다.
ex) 5%2 -> 1 반환
println(1 + 10) // 11 출력
println(2 - 10) // -8 출력
println(2 * 40) // 80 출력
println(40 / 2) // 20 출력
println(45 % 7) // 3 출력
2. 대입 연산자
• =
• A=B : B가 A에 할당된다.
• X=2 : 2가 X에 할당된다.
• 우변에 있는 것이 좌변에 할당(대입)된다.
var number1: Int = 22 // 우변에 있는 22가 number1에 할당된다.
println(number1) // 22 출력
number1 = 100 // 우변에 있는 100이 number1에 할당된다.
println(number1) // 100
number1 = 1 + 10 // 우변에 있는 1 + 10이 연산되어 11이 된 후 number1에 할당된다.
println(number1) // 11 출력
3. 복합 대입 연산자
• 산술 연산자와 대입 연산자를 한 번에 나타낸 것
• A = A + B 를 줄여서 A += B 의 형태로 나타낼 수 있다.
var number2: Int = 12
number2 += 8 // 20
number2 -= 10 // 10
number2 *= 2 // 20
number2 /= 5 // 4
println(number2) // 4 출력
4. 증감 연산자
• 1씩 증가하거나 감소하는 연산자
• ++, --
- A++, B-- : 값을 먼저 반환하고 증감한다.
- ++A, --B : 증감을 먼저하고 값을 반환한다.
var number3: Int = 10
println(number3++) // 10 출력 : number3에 들어있던 10을 먼저 반환하고 그 다음 1 증가
println(number3) // 11 출력
println(++number3) // 12 출력 : 11에서 1을 먼저 증가하고 그 다음 값을 반환
println(number3) // 12 출력
5. 비교 연산자
• >, >=, <, <=, ==, !=, ===, !==
• 크다, 크거나 같다, 작다, 작거나 같다, 같다, 다르다, 객체가 같다, 객체가 다르다.
• 비교 연산자의 결과는 항상 Boolean으로 나온다.
• ==, !=는 값을 비교하고, ===, !==는 주소값을 비교한다.
val NUMBER4: Int = 1
val NUMBER5: Int = 2
val RESULT: Boolean = NUMBER4 > NUMBER5
println(RESULT) // false 출력 : 1이 2보다 크다는 거짓
val RESULT2: Boolean = NUMBER4 <= NUMBER5
println(RESULT2) // true 출력 : 1이 2보다 작거나 같다는 참
val RESULT3: Boolean = NUMBER4 == NUMBER5
println(RESULT3) // false 출력 : 1과 2가 같다는 거짓
val RESULT4: Boolean = NUMBER4 != NUMBER5
println(RESULT4) // true 출력 : 1과 2가 다르나는 참
6. 논리 연산자
• 논리 연산자는 Boolean을 대상으로만 연산할 수 있다.
• &&, ||, !
- && : and 연산. 좌변 그리고 우변이 모두 true면 true 반환. 나머지는 false.
- || : or 연산. 좌변 또는 우변 중 하나라도 true면 true 반환. 나머지는 false .
- ! : not 연산. true면 false, false면 true를 반환.
val BOOLEAN1: Boolean = true
val BOOLEAN2: Boolean = false
val RESULT5: Boolean = BOOLEAN1 && BOOLEAN2
val RESULT6: Boolean = BOOLEAN1 || BOOLEAN2
val RESULT7: Boolean = !BOOLEAN1
println(RESULT5) // false 출력 : BOOLEAN1 그리고 BOOLEAN2가 둘 다 true여야 true, BOOLEAN2가 false이므로 false 반환.
println(RESULT6) // true 출력 : BOOLEAN1 또는 BOOLEAN2 중 하나라도 true면 true. BOOLEAN1이 true므로 true 반환.
println(RESULT7) // false 출력 : BOOLEAN1이 true이므로 false 반환.
연산자 우선 순위
• num1 = 5 + 3
- =도 연산자, +도 연산자인데 어떻게 5 + 3이 먼저 연산이 되어서 8이라는 값이 num1에 들어갈까?
-> = 연산자보다 +연산자의 연산 우선 순위가 더 높기 때문!
-> 연산자마다 우선 순위가 정해져 있다.
• 수학에서 더하기, 빼기보다 곱하기, 나누기를 먼저 계산하고, 괄호 안을 먼저 계산하고 하듯이 코틀린에서도 연산의 순서가 정해져있다.
• 코틀린의 연산자 우선 순위 : https://kotlinlang.org/docs/reference/grammar.html#expressions
• 연산자 우선 순위를 일일이 외우기도 어렵고, 지키기도 힘듦.
-> 괄호를 적극 활용
ex) 6 / 5 + 3 * 2 보다는 (6 / 5) + (3 * 2)가 훨씬 직관적이다.
이 글은
패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
'📱 Android > 💻 Kotlin' 카테고리의 다른 글
[Android/Kotlin] 6. 흐름 제어 (1) | 2022.10.04 |
---|---|
[Android/Kotlin] 5. 함수 (0) | 2022.10.04 |
[Android/Kotlin] 3. Null (1) | 2022.09.30 |
[Android/Kotlin] 2. 자료형 (2) | 2022.09.30 |
[Android/Kotlin] 1. 변수 (0) | 2022.09.29 |