Kotlin Expression, Statement and Block

Kotlin Expression –

An expression consists of variables, operators, methods calls etc that produce a single value. Like other language, Kotlin expression is building blocks of any program that are usually created to produce new value. Sometimes, it can be used to assign a value to a variable in a program. It is to be noted that an expression can contain another expression.  

  • A variable declaration can not be an expression (var a = 100)
  • Assigning a value is not an expression (b = 15)
  • A class declaration is not an expression (class XYZ {….})

Note: In Kotlin every function returns a value atleast Unit, so every function is an expression.
Let’s take an example: 

Kotlin




fun sumOf(a:Int,b:Int): Int{
    return a+b
}
 
fun main(args: Array<String>){
    val a = 10
    val b = 5
    var sum = sumOf(a,b)
    var mul = a * b
    println(sum)
    println(mul)
}


Output: 

15
50

Here, a * b and sumof(a, b) both are expressions and return integer value. sumOf() is a function and returns the sum of two parameters passed to it.
 

Kotlin if expression –

In Java, if is a statement but, in Kotlin if is an expression. It is called an expression because it compares the values of a and b and returns the maximum value. Therefore, in Kotlin there is no ternary operator (a>b)?a:b because it is replaced by the if expression
 

if(condition) condition met! else condition not met!

Let’s take an example to return the maximum value among two variables: 

Kotlin




fun main(args: Array<String>){
    val a = 1000
    val b = 999
    var c = 1122
    var max1 = if(a > b) a else b
    var max2 = if(c > a) c else a
    println("The maximum of ${a} and ${b} is $max1 " )
    println("The maximum of ${c} and ${a} is $max2 " )
}


Output: 

The maximum of 1000 and 999 is 1000 
The maximum of 1122 and 1000 is 1122 

 

Kotlin Statement –

A statement is the syntactic unit of any programming language that expresses some action to be carried out. A program is formed by the sequence of one or more statements. In Java, a statement always ends with a semicolon but, in Kotlin semicolon(;) is optional.
 

  • Declaration of a variable is a statement.
val marks = 90
var grade = 'A' 
  • Assigning a value to a variable is also a statement.
var sum = 10 + 20        // it is a statement
  • Here, 10 + 20 is an expression but var sum = 10 + 20 is a statement.

Multiple Statements: 
Multiple statements are the statements when you write more than one statement in a single line.
For example: 

Kotlin




fun main(args: Array<String>){
    val sum: Int
    sum = 100
    println(sum)                             // single statement
    println("Hello");println("Beginner!")       // Multiple statements
}


Output: 

100
Hello
Beginner!

Kotlin Block –

A block is a section of software code enclosed with curly braces ({…}). A block can consist of one or more statements, preceded by the declarations of variables. A block contains one or more blocks nested within it. Every function has its own block and main function also contains a block.
For example:  

Kotlin




fun main(args: Array<String>) {              //start of main block or outer block
     val array = intArrayOf(2, 4, 6, 8)
     for (element in array) {                // start of inner block
        println(element)
     }                                       // end of inner block
 }                                           // end of main block


Output:  

2
4
6
8

Scope of variable in nested blocks: 
The variables declared at the head of the block are visible throughout the block and any nested blocks, unless a variable with the same name declared at the head in the inner block. When a new declaration is effective throughout the inner block, the outer declaration becomes effective again at the end of the inner block. So, we can say that variables have nested scopes.