In Go, we use the while loop to execute a block of code until a certain condition is met.
Unlike other programming languages, Go doesn't have a dedicated keyword for a while loop. However, we can use the for
loop to perform the functionality of a while loop.
Syntax of Go while loop
for condition {
// code block
}
Here, the loop evaluates the condition
. If the condition is:
true
- statements inside the loop are executed andcondition
is evaluated againfalse
- the loop terminates
Flowchart of while loop in Go
Example: Go while loop
// Program to print numbers between 1 and 5
package main
import ("fmt")
func main() {
number := 1
for number <= 5 {
fmt.Println(number)
number++
}
}
Output
1 2 3 4 5
Here, we have initialized the number to 1.
- During the first iteration, the condition
number <= 5
istrue
. Hence, 1 is printed on the screen. Now, the value of number is increased to 2. - Again the test condition,
number <= 5
is true. Hence, 2 is also printed on the screen and the value of number is increased to 3. - This process continues until number becomes 6. Then, the condition
number <= 5
will befalse
and the loop terminates.
Create multiplication table using while loop
// Program to create a multiplication table of 5 using while loop
package main
import ("fmt")
func main() {
multiplier := 1
// run while loop for 10 times
for multiplier <= 10 {
// find the product
product := 5 * multiplier
// print the multiplication table in format 5 * 1 = 5
fmt.Printf("5 * %d = %d\n", multiplier, product)
multiplier++
}
}
Output
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
Here, we have initialized the multiplier := 1
. In each iteration, the value of the multiplier gets incremented by 1 until multiplier <= 10
.
Go do...while Loop
In Go, we can use the same for
loop to provide the functionality of a do while loop. For example,
// Program to print number from 1 to 5
package main
import "fmt"
func main(){
number := 1
// loop that runs infinitely
for {
// condition to terminate the loop
if number > 5 {
break;
}
fmt.Printf("%d\n", number);
number ++
}
}
Output
1 2 3 4 5
Notice the if
statement inside the for
loop.
if number > 5 {
break;
}
This statement acts as the while clause inside a do...while loop and is used to terminate the loop.