Arithmetic and Assignment Operators

Arithmetic Operators

Example

The usual maths operators. Remember: Int / Int gives an Int.

fun main() {
    val a = 17
    val b = 5
    println(a + b)   // 22
    println(a - b)   // 12
    println(a * b)   // 85
    println(a / b)   // 3  (whole number division)
    println(a % b)   // 2  (remainder)
    println(a.toDouble() / b)
    println(-7 % 3)          // remainder keeps the sign of the left side
    println((-7).mod(3))     // mod is always non-negative here
}

Output

22
12
85
3
2
3.4
-1
2

Assignment Operators

Example

Compound assignment updates a var in place.

fun main() {
    var wallet = 500
    wallet += 200     // wallet = wallet + 200
    println(wallet)
    wallet -= 150
    println(wallet)
    wallet *= 2
    println(wallet)
    wallet /= 10
    println(wallet)
    wallet %= 7
    println(wallet)
}

Output

700
550
1100
110
5

Note: Unlike Java, assignment is not an expression in Kotlin: if (x = 5) does not compile, which avoids a classic bug.

Increment and Decrement

Example

Prefix ++x changes the value first; postfix x++ uses the old value first.

fun main() {
    var likes = 10
    println(likes++)  // prints 10, then likes becomes 11
    println(likes)    // 11
    println(++likes)  // becomes 12, then prints 12
    likes--
    println(likes)    // 11
}

Output

10
11
12
11