본문으로 건너뛰기

➕ 연산자

📖 연산자란?

**연산자(Operator)**는 값을 계산하거나 비교하는 기호입니다. 덧셈, 뺄셈, 비교 등 다양한 연산을 수행합니다.

🔢 산술 연산자

기본 연산

fun main() {
val a = 10
val b = 3

println(a + b) // 13 (더하기)
println(a - b) // 7 (빼기)
println(a * b) // 30 (곱하기)
println(a / b) // 3 (나누기, 정수)
println(a % b) // 1 (나머지)
}

실수 나눗셈

fun main() {
val a = 10
val b = 3

println(a / b) // 3 (정수 나눗셈)
println(a.toDouble() / b) // 3.333... (실수 나눗셈)
println(10.0 / 3) // 3.333...
}

증감 연산자

fun main() {
var count = 5

count++ // count = count + 1
println(count) // 6

count-- // count = count - 1
println(count) // 5

count += 3 // count = count + 3
println(count) // 8

count -= 2 // count = count - 2
println(count) // 6
}

🔍 비교 연산자

크기 비교

fun main() {
val a = 10
val b = 20

println(a == b) // false (같다)
println(a != b) // true (다르다)
println(a > b) // false (크다)
println(a < b) // true (작다)
println(a >= b) // false (크거나 같다)
println(a <= b) // true (작거나 같다)
}

문자열 비교

fun main() {
val name1 = "홍길동"
val name2 = "홍길동"
val name3 = "김철수"

println(name1 == name2) // true
println(name1 == name3) // false
println(name1 != name3) // true
}

🎭 논리 연산자

AND, OR, NOT

fun main() {
val age = 25
val hasLicense = true

// && (AND) - 둘 다 true여야 true
val canDrive = age >= 18 && hasLicense
println(canDrive) // true

// || (OR) - 하나만 true여도 true
val isSpecial = age < 18 || age > 65
println(isSpecial) // false

// ! (NOT) - true ↔ false 반전
val cannotDrive = !canDrive
println(cannotDrive) // false
}

조합 예제

fun main() {
val score = 85

val isA = score >= 90
val isB = score >= 80 && score < 90
val isC = score >= 70 && score < 80

println("A학점: $isA") // false
println("B학점: $isB") // true
println("C학점: $isC") // false
}

🎯 in 연산자 (범위)

범위 확인

fun main() {
val age = 25

// 범위 안에 있는지
println(age in 1..100) // true
println(age in 1..20) // false

// 범위 밖에 있는지
println(age !in 1..20) // true
}

문자 범위

fun main() {
val grade = 'B'

println(grade in 'A'..'C') // true
println(grade in 'D'..'F') // false
}

🔀 is 연산자 (타입 체크)

fun main() {
val value: Any = "Hello"

if (value is String) {
println("문자열입니다")
println("길이: ${value.length}")
}

if (value !is Int) {
println("정수가 아닙니다")
}
}

🎯 실전 예제

계산기

fun main() {
val a = 10
val b = 3

println("=== 계산기 ===")
println("$a + $b = ${a + b}")
println("$a - $b = ${a - b}")
println("$a * $b = ${a * b}")
println("$a / $b = ${a / b}")
println("$a % $b = ${a % b}")
}

짝수/홀수 판별

fun main() {
val number = 7

if (number % 2 == 0) {
println("$number는 짝수입니다")
} else {
println("$number는 홀수입니다")
}
}

성적 판정

fun main() {
val score = 85

val grade = when {
score >= 90 -> "A"
score >= 80 -> "B"
score >= 70 -> "C"
score >= 60 -> "D"
else -> "F"
}

println("점수: $score점 → 학점: $grade")
}

윤년 판별

fun main() {
val year = 2024

val isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)

if (isLeapYear) {
println("${year}년은 윤년입니다")
} else {
println("${year}년은 평년입니다")
}
}

📊 연산자 우선순위

fun main() {
// 높음 → 낮음
// 1. !, ++, --
// 2. *, /, %
// 3. +, -
// 4. <, >, <=, >=
// 5. ==, !=
// 6. &&
// 7. ||

val result = 10 + 2 * 3
println(result) // 16 (곱셈이 먼저)

val result2 = (10 + 2) * 3
println(result2) // 36 (괄호가 먼저)
}

🤔 자주 묻는 질문

Q1. ++와 +=의 차이는?

A: 비슷하지만 용도가 다릅니다!

fun main() {
var count = 5

count++ // 1씩 증가만 가능
count += 3 // 원하는 만큼 증가

println(count) // 9
}

Q2. / vs %의 차이는?

A: / 는 몫, % 는 나머지입니다!

fun main() {
val a = 10
val b = 3

println(a / b) // 3 (몫)
println(a % b) // 1 (나머지)

// 10 = 3 * 3 + 1
}

Q3. == vs ===의 차이는?

A: == 는 내용, === 는 참조를 비교합니다!

fun main() {
val a = "Hello"
val b = "Hello"

println(a == b) // true (내용 같음)
println(a === b) // true (같은 객체)

// 일반적으로 ==만 사용!
}

🎬 마치며

연산자는 프로그래밍의 기본 도구입니다!

핵심 정리:
✅ 산술: +, -, *, /, %
✅ 비교: ==, !=, >, <, >=, <=
✅ 논리: &&, ||, !
✅ 범위: in, !in
✅ 타입: is, !is

다음 단계: 조건문에서 if와 when을 알아보세요!