Go - nested if statements



Nested if Statement

It is always legal in Go programming to nest if-else statements, which means you can use one if or else if statement inside another if or else if statement(s).

Syntax

The syntax for a nested if statement is as follows −

if( boolean_expression 1) {
   /* Executes when the boolean expression 1 is true */
   if(boolean_expression 2) {
      /* Executes when the boolean expression 2 is true */
   }
}

You can nest else if...else in the similar way as you have nested if statement.

Example of Nested if Statement

This example demonstrates nested if statements:

package main

import "fmt"

func main() {
   /* local variable definition */
   var a int = 100
   var b int = 200
 
   /* check the boolean condition */
   if( a == 100 ) {
      /* if condition is true then check the following */
      if( b == 200 )  {
         /* if condition is true then print the following */
         fmt.Printf("Value of a is 100 and b is 200\n" );
      }
   }
   fmt.Printf("Exact value of a is : %d\n", a );
   fmt.Printf("Exact value of b is : %d\n", b );
}

When the above code is compiled and executed, it produces the following result −

Value of a is 100 and b is 200
Exact value of a is : 100
Exact value of b is : 200

Nested if Statement with break

The break statement terminates the loops, and it can be used inside a nested if statement, but a nested if statement should be used inside a loop.

Example

This example demonstrates the use of a break statement within a nested if statement that is placed inside a for loop.

In this example, there is an integer array, and we are checking even and odd numbers that are greater than 20 and breaking the loop if an even number is found that is greater than 20.

package main
import "fmt"

func main() {
    // An int array
    arr := []int{10, 20, 55, 53, 75, 80}

    for _, num := range arr {
        if num > 20 {
            if num%2 == 0 {
                fmt.Println("Even number found, breaking loop.")
                break
            } else {
                fmt.Printf("Odd number > 20: %d\n", num)
            }
        }
    }

    fmt.Println("End of loop.")
}

When the above code is compiled and executed, it produces the following result −

Odd number > 20: 55
Odd number > 20: 53
Odd number > 20: 75
Even number found, breaking loop.
End of loop.
Advertisements