More Operators

In the preceding chapter, we saw mathematical expressions and various operators, such as + and -. Those operators can work on literal values as we saw. Not surprisingly, they can also work with variables:

  val count = 5
  val more = count + 2

  println(more)

As you might expect, this prints 7 as the output.

However, now that we have variables, we have more operators that we can use!

Increments and Decrements

Akin to many other programming languages, we can use ++ and -- operators to increment and decrement a variable by 1:

fun main() {
  var postIncrement = 5

  println("postIncrement ${postIncrement} ${postIncrement++} ${postIncrement}")

  var preIncrement = 5

  println("preIncrement ${preIncrement} ${++preIncrement} ${preIncrement}")

  var postDecrement = 5

  println("postDecrement ${postDecrement} ${postDecrement--} ${postDecrement}")

  var preDecrement = 5

  println("preDecrement ${preDecrement} ${--preDecrement} ${preDecrement}")
}

Here, we use string interpolation with println() to show the value of a variable before, “during”, and after an increment or decrement operation.

The results are:

postIncrement 5 5 6
preIncrement 5 6 6
postDecrement 5 5 4
preDecrement 5 4 4

So:

Of course, these only work with var, as the value of a val is “immutable” and cannot be changed.

Augmented Assignments

Similarly, there are also operators that evaluate a mathematical expression and assign it to the var in one shot, such as +=:

  var count = 5

  count += 2

  println(count)

This prints 7, showing that count had its value incremented by 2. This is the equivalent of:

var count = 5

count = count + 2

println(count)

There are -=, *=, /=, and %= operators as well, combining those mathematical operators with assigments.

Unary Operators

Most programming languages offer ! (or some equivalent) as a “unary operator”, which inverts the value of a Boolean. Kotlin has that, along with a - negation operator that inverts the sign of a number:

  val thisIsTrue = true

  println(!thisIsTrue)

  val whySoNegative = -5

  println(-whySoNegative)

As you might expect, this prints:

false
5

Prev Table of Contents Next

This book is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license.