Накопление результата в Go
Давайте с помощью цикла найдем сумму целых
чисел от 1 до 100. Для решения
такой задачи в цикле перебираются числа
и их сумма последовательно записывается
в какую-то переменную:
res := 0
for i := 1; i <= 100; i++ {
res = res + i
}
fmt.Println(res) // выведет 5050
Можно упростить решение через оператор +=:
res := 0
for i := 1; i <= 100; i++ {
res += i
}
fmt.Println(res) // выведет 5050
С помощью циклов можно формировать строки.
Давайте сделаем строку, заполненную десятью
буквами "x":
str := ""
for i := 0; i < 10; i++ {
str += "x"
}
fmt.Println(str) // выведет xxxxxxxxxx
А теперь сделаем строку "12345".
Для этого будем прибавлять к переменной
счетчик цикла:
str := ""
for i := 1; i <= 5; i++ {
str = str + fmt.Sprint(i)
}
fmt.Println(str) // выведет 12345
Сумму можно собрать в переменной, добавляя к ней число на каждом круге. Перед циклом накопитель обычно обнуляют или задают начальное значение, а в теле обновляют с помощью сокращенной записи сложения.
Такой прием работает не только для суммы: можно считать произведение, количество шагов или любое другое значение, которое меняется от круга к кругу. Главное - одна переменная снаружи и понятное обновление внутри.
Сложим числа от 1 до 3 включительно:
sum := 0
for i := 1; i <= 3; i++ {
sum += i
}
fmt.Println(sum)
После цикла в sum окажется 6:
1 плюс 2 плюс 3. Каждый
круг добавляет текущий счетчик к накопителю.
Даны переменные:
total := 0
last := 4
Соберите сумму чисел от 1 до last
включительно в total и выведите результат.
Даны переменные:
prod := 1
last := 3
Перемножьте числа от 1 до last
включительно в prod и выведите prod.
Даны переменные:
steps := 0
limit := 9
Считайте в steps, сколько кругов
делает цикл от 0, пока счетчик
меньше limit. Выведите steps
после цикла.