Operators

An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. Kotlin is rich in built-in operators and provide the following types of operators:

  • Arithmetic Operators
  • Relational Operators
  • Assignment Operators
  • Unary Operators
  • Logical Operators
  • Bitwise Operations

Now let’s look into these Kotlin Operators one by one.

(a) Kotlin Arithmetic Operators

Kotlin arithmetic operators are used to perform basic mathematical operations such as addition, subtraction, multiplication and division etc.

OperatorNameDescriptionExample
+AdditionAdds together two valuesx + y
SubtractionSubtracts one value from anotherx – y
*MultiplicationMultiplies two valuesx * y
/DivisionDivides one value by anotherx / y
%ModulusReturns the division remainderx % y

Example

Following example shows different calculations using Kotlin Arithmetic Operators:

funmain(args: Array<String>){val x: Int =40val y: Int =20println("x + y = "+(x + y))println("x - y = "+(x - y))println("x / y = "+(x / y))println("x * y = "+(x * y))println("x % y = "+(x % y))}

When you run the above Kotlin program, it will generate the following output:

x + y = 60
x - y = 20
x / y = 2
x * y = 800
x % y = 0

(b) Kotlin Relational Operators

Kotlin relational (comparison) operators are used to compare two values, and returns a Boolean value: either true or false.

OperatorNameExample
>greater thanx > y
<less thanx < y
>=greater than or equal tox >= y
<=less than or equal tox <= y
==is equal tox == y
!=not equal tox != y

Example

Following example shows different calculations using Kotlin Relational Operators:

funmain(args: Array<String>){val x: Int =40val y: Int =20println("x > y = "+(x > y))println("x < y = "+(x < y))println("x >= y = "+(x >= y))println("x <= y = "+(x <= y))println("x == y = "+(x == y))println("x != y = "+(x != y))}

When you run the above Kotlin program, it will generate the following output:

x > y = true
x < y = false
x >= y = true
x <= y = false
x == y = false
x != y = true

(c) Kotlin Assignment Operators

Kotlin assignment operators are used to assign values to variables.

Following is an example where we used assignment operator = to assign a values into two variables:

funmain(args: Array<String>){val x: Int =40val y: Int =20println("x = "+  x)println("y = "+  y)}

When you run the above Kotlin program, it will generate the following output:

x = 40
y = 20

Following is one more example where we used assignment operator += to add the value of self variable and assign it back into the same variable:

funmain(args: Array<String>){var x: Int =40

   x +=10println("x = "+  x)}

When you run the above Kotlin program, it will generate the following output:

x = 50

Following is a list of all assignment operators:

OperatorExampleExpanded Form
=x = 10x = 10
+=x += 10x = x – 10
-=x -= 10x = x – 10
*=x *= 10x = x * 10
/=x /= 10x = x / 10
%=x %= 10x = x % 10

Example

Following example shows different calculations using Kotlin Assignment Operators:

funmain(args: Array<String>){var x: Int =40

   x +=5println("x += 5 = "+ x )
   
   x =40;
   x -=5println("x -= 5 = "+  x)
   
   x =40
   x *=5println("x *= 5 = "+  x)
   
   x =40
   x /=5println("x /= 5 = "+  x)
   
   x =43
   x %=5println("x %= 5 = "+ x)}

When you run the above Kotlin program, it will generate the following output:

x += 5 = 45
x -= 5 = 35
x *= 5 = 200
x /= 5 = 8
x %= 5 = 3

(d) Kotlin Unary Operators

The unary operators require only one operand; they perform various operations such as incrementing/decrementing a value by one, negating an expression, or inverting the value of a boolean.

Following is the list of Kotlin Unary Operators:

OperatorNameExample
+unary plus+x
unary minus-x
++increment by 1++x
decrement by 1–x
!inverts the value of a boolean!x

Example

Following example shows different calculations using Kotlin Unary Operators:

funmain(args: Array<String>){var x: Int =40var b:Boolean =trueprintln("+x = "+(+x))println("-x = "+(-x))println("++x = "+(++x))println("--x = "+(--x))println("!b = "+(!b))}

When you run the above Kotlin program, it will generate the following output:

+x = 40
-x = -40
++x = 41
--x = 40
!b = false

Here increment (++) and decrement (–) operators can be used as prefix as ++x or –x as well as suffix as x++ or x–. The only difference between the two forms is that in case we use them as prefix then operator will apply before expression is executed, but if use them as suffix then operator will apply after the expression is executed.

(e) Kotlin Logical Operators

Kotlin logical operators are used to determine the logic between two variables or values:

Following is the list of Kotlin Logical Operators:

OperatorNameDescriptionExample
&&Logical andReturns true if both operands are truex && y
||Logical orReturns true if either of the operands is truex || y
!Logical notReverse the result, returns false if the operand is true!x

Example

Following example shows different calculations using Kotlin Logical Operators:

funmain(args: Array<String>){var x: Boolean =truevar y:Boolean =falseprintln("x && y = "+(x && y))println("x || y = "+(x || y))println("!y = "+(!y))}

When you run the above Kotlin program, it will generate the following output:

x && y = false
x || y = true
!y = true

(e) Kotlin Bitwise Operations

Kotlin does not have any bitwise operators but Kotlin provides a list of helper functions to perform bitwise operations.

Following is the list of Kotlin Bitwise Functions:

FunctionDescriptionExample
shl (bits)signed shift leftx.shl(y)
shr (bits)signed shift rightx.shr(y)
ushr (bits)unsigned shift rightx.ushr(y)
and (bits)bitwise andx.and(y)
or (bits)bitwise orx.or(y)
xor (bits)bitwise xorx.xor(y)
inv()bitwise inversex.inv()

Example

Following example shows different calculations using Kotlin bitwise functions:

funmain(args: Array<String>){var x:Int =60// 60 = 0011 1100  var y:Int =13// 13 = 0000 1101var z:Int

   z = x.shl(2)// 240 = 1111 0000println("x.shl(2) = "+  z)
   
   z = x.shr(2)// 15 = 0000 1111println("x.shr(2) = "+  z)
   
   z = x.and(y)// 12 = 0000 1100println("x.and(y)  = "+  z)
   
   z = x.or(y)// 61 = 0011 1101println("x.or(y)  = "+  z)
   
   z = x.xor(y)// 49 = 0011 0001println("x.xor(y)  = "+  z)
   
   z = x.inv()// -61 = 1100 0011println("x.inv()  = "+  z)}

When you run the above Kotlin program, it will generate the following output:

x.shl(2) = 240
x.shr(2) = 15
x.and(y)  = 12
x.or(y)  = 61
x.xor(y)  = 49
x.inv()  = -61

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *