Operators
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)
}