Петли

Циклы — это одна из итеративных конструкций, используемых во всех языках программирования для итеративного выполнения какой-либо задачи или рекурсии по структуре данных, такой как карта или массив.

Многие языки предоставляют набор циклов FOR, WHILE и DO WHILE, но GoLang предлагает другой подход к этим трем циклам.

Единственная конструкция цикла, доступная в Go, — это FOR. Давайте посмотрим, как мы можем реализовать различные сценарии зацикливания с помощью GO.

Классический цикл For

Ниже приведен пример того, как мы можем написать классический цикл for с инициализацией, условием и шагом приращения.

package main
import "fmt"
func main() {
	var i int
	//for initialization;condition; increment/decrement
	for i = 0; i < 10; i++ {
		fmt.Println("Inside the loop")
	}
}

Для только с условием (While loop)

Конструкция типа цикла while может быть достигнута с использованием цикла for только с условием и выполнением шага инициализации перед циклом и шага увеличения/уменьшения внутри цикла.

package main
import "fmt"
func main() {
	var i int
	//initialization
        i = 0
        //condition
	for i < 5 {
		fmt.Println(i)
                // initialization
		i++
	}
}

Бесконечный цикл

Мы можем создать бесконечный цикл, используя цикл for без каких-либо условий и используя оператор break для остановки цикла.

package main
import "fmt"
func main() {
	for {
		fmt.Println(i)
		i++
		if i > 5 {
			break
		}
	}
}

Итерация массива

Мы можем перебирать массив, используя функцию диапазона

package main
import "fmt"
func main() {
        // declare an array
	arr := []int{2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
        i will have index and v will have values
	for i, v := range arr {
		fmt.Println(i)
		fmt.Println(v)
	}
}

Итерация карты

Мы можем перебирать карту, используя ту же функцию диапазона

package main
import "fmt"
func main() {
	
	m := make(map[string]int)
	m["a"] = 1
	for i, v := range m {
		fmt.Println(i)
		fmt.Println(v)
	}
}

Далее я буду писать об условных конструкциях в Go.

Удачного обучения :D