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)
}
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โ
| Category | Operators |
|---|---|
| Arithmetic | +, -, *, /, % |
| Assignment | =, +=, -=, *=, /=, %= |
| Comparison | ==, !=, >, <, >=, <= |
| Logical | &&, ` |
| Range | .., in, !in |
| Bitwise | and, or, xor, inv, shl, shr |
| Null Safety | ?., ?:, !! |
Telemetry Integration
Completed working through this block? Sync progress to workspace.