Цикълът for е оператор за контролен поток, използван за многократно изпълнение на блок код. В Go цикълът for е единствената циклична конструкция.
Можете да използвате цикъла for, за да повтаряте блокове от код и да симулирате пълен набор от цикли от други езици, включително цикли for...each, while и do...while.
Инсталирайте Отидете в началото
Уверете се, че имате Отидете на инсталиране да следваш. Повечето от тези примери изискват fmt пакет и трябва да използвате цялостна структура като тази:
пакет главен
внос "fmt"
функцияглавен() {
// кодът отива тук
}
Трикомпонентен за цикъл в Go
Това е може би най-често срещаният for цикъл. Както подсказва името, той отнема три компонента: първоначална стойност, условие и пост изявление. Ето синтаксиса:
за инициализация; състояние; публикуване {
изявления)
}
В този цикъл, след инициализацията, условието се оценява. Ако е вярно, операторите в блока for цикъл се изпълняват, последвани от оператора post. Програмата повтаря този процес, докато условието престане да бъде вярно. По-долу е даден пример.
за i := 1; и <= 5; i++ {
fmt.Println(и)
}
Тук:
- наборите за инициализация и да се 1
- условието е i <= 5
- пост изявлението е i++
Този цикъл for отпечатва текущата стойност на и ако е по-малко или равно на 5. „Изявлението за публикация“ добавя 1 към и след всеки цикъл и веднъж и стига до 5, цикълът приключва. Без „пост оператора“, цикълът ще се изпълнява безкрайно много пъти и потенциално ще доведе до срив на програмата.
Цикъл за всеки в Go
Go няма цикъл for-each, но можете да промените цикъл for, за да преминете през колекция от елементи. Ето синтаксиса:
за индекс, стойност := колекция диапазон {
// тяло
}
Колекцията може да бъде масив, срез, низ или карта или стойности, получени в канал. Индексът е позицията в колекцията. Стойността е елементът в индекса.
Ако ви интересува само стойността, пропуснете индекса по следния начин:
за _, стойност := отрязък на диапазона {}
В примера по-долу цикълът преминава през масива и отпечатва както индекса, така и стойността на всеки елемент в него.
масив := []низ{"Здравейте", "свят"}
за i, j := обхват масив {
fmt.Println(и, j)
}
Цикъл While в Go
Можете да използвате цикъла for, за да постигнете функционалност на цикъла while. В цикъл while операторът се изпълнява, докато условието остава вярно. Помислете за следното:
аз := 1
за i <= 5 {
i *= 2
}
fmt.Println(и)
В този код, while и е по-малко или равно на 5, то се умножава по 2 всеки път, когато цикълът се изпълнява.
A Do...While Loop в Go
Цикълът do...while е различен от цикъла while, тъй като тялото на цикъла ще се изпълни поне веднъж. Има два подхода за прилагане на това в Go.
- Уверете се, че условието за първата итерация е вярно.
Тъй като първоначалното условие е вярно, и се отпечатва и след това се увеличава при първата итерация. Тъй като условието (аз <=5) се оценява на false по време на втората итерация, цикълът излиза.аз := 10
за следващо := вярно; следващия; следващо = i <= 5 {
fmt.Println(и)
i++
}// Ще отпечата 10
- Изпълнете тялото на цикъла веднъж, преди да проверите условието.
В цикъла for по-горе първо се отпечатва 10, което е стойността на i, след което се изпълнява операторът if. Ако условието е вярно, цикълът прекъсва, в противен случай цикълът продължава.аз := 10
за {
fmt.Println(и)
i++ако аз >= 5 {
прекъсване;
}
}// Ще отпечата 10
Други изявления за контролния поток
Циклите в програмирането са важни, защото опростяват повтарящите се задачи и спестяват време. Вместо да пишете ред код десет пъти, можете просто да създадете цикъл, който се изпълнява десет пъти. Други оператори за контролен поток са if, if...else, if...else if...if и оператори switch.
Какво е новото в Go версия 1.18
Прочетете Следващото
Свързани теми
- Програмиране
- Програмиране
За автора
Мери Гатони е разработчик на софтуер със страст за създаване на техническо съдържание, което е не само информативно, но и ангажиращо. Когато не кодира или пише, тя обича да излиза с приятели и да е на открито.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате