Skip to main content

Operators

Trushi Jasani
EditReport

Operators

Arithmetic Operatorsโ€‹

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

println(a + b) // 26 โ€” Addition
println(a - b) // 14 โ€” Subtraction
println(a * b) // 120 โ€” Multiplication
println(a / b) // 3 โ€” Division (integer)
println(a % b) // 2 โ€” Modulus (remainder)
}

Integer vs Float Divisionโ€‹

val x = 7 / 2         // 3 (integer division)
val y = 7.0 / 2 // 3.5 (float division)
val z = 7 / 2.0 // 3.5

Assignment Operatorsโ€‹

fun main() {
var x = 10

x += 5 // x = x + 5 โ†’ 15
x -= 3 // x = x - 3 โ†’ 12
x *= 2 // x = x * 2 โ†’ 24
x /= 4 // x = x / 4 โ†’ 6
x %= 4 // x = x % 4 โ†’ 2

println(x) // 2
}

Comparison Operatorsโ€‹

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

println(a == b) // false โ€” Equal to
println(a != b) // true โ€” Not equal to
println(a > b) // false โ€” Greater than
println(a < b) // true โ€” Less than
println(a >= b) // false โ€” Greater than or equal
println(a <= b) // true โ€” Less than or equal
}

Logical Operatorsโ€‹

fun main() {
val isAdult = true
val hasTicket = false

println(isAdult && hasTicket) // false โ€” AND
println(isAdult || hasTicket) // true โ€” OR
println(!isAdult) // false โ€” NOT
}

Increment and Decrementโ€‹

fun main() {
var count = 5

println(count++) // 5 โ€” post-increment (use then add)
println(count) // 6

println(++count) // 7 โ€” pre-increment (add then use)
println(count) // 7

println(count--) // 7 โ€” post-decrement
println(--count) // 5 โ€” pre-decrement
}

Range Operatorโ€‹

fun main() {
val range = 1..10 // 1 to 10 inclusive
val charRange = 'a'..'z'

println(5 in range) // true
println(15 in range) // false
println('e' in charRange) // true
}

Bitwise Operatorsโ€‹

fun main() {
val a = 0b1010 // 10
val b = 0b1100 // 12

println(a and b) // 8 โ€” bitwise AND
println(a or b) // 14 โ€” bitwise OR
println(a xor b) // 6 โ€” bitwise XOR
println(a.inv()) // bitwise NOT (inverts bits)
println(a shl 1) // 20 โ€” shift left
println(a shr 1) // 5 โ€” shift right
}

String Operatorsโ€‹

fun main() {
val s1 = "Hello"
val s2 = "World"

println(s1 + " " + s2) // Hello World (concatenation)
println(s1 == "Hello") // true (structural equality)
println(s1 === s1) // true (referential equality)
println("lo" in s1) // true (contains check)
}

Elvis Operator ?:โ€‹

Used with nullable types:

fun main() {
val name: String? = null
val displayName = name ?: "Unknown"
println(displayName) // Unknown
}

Safe Call Operator ?.โ€‹

fun main() {
val name: String? = null
println(name?.length) // null (no NullPointerException)

val name2: String? = "Kotlin"
println(name2?.length) // 6
}

Operator Summary Tableโ€‹

CategoryOperators
Arithmetic+, -, *, /, %
Assignment=, +=, -=, *=, /=, %=
Comparison==, !=, >, <, >=, <=
Logical&&, `
Range.., in, !in
Bitwiseand, or, xor, inv, shl, shr
Null Safety?., ?:, !!
Telemetry Integration

Completed working through this block? Sync progress to workspace.