Цикълът for е оператор за контролен поток, използван за многократно изпълнение на блок код. В Go цикълът for е единствената циклична конструкция.

Можете да използвате цикъла for, за да повтаряте блокове от код и да симулирате пълен набор от цикли от други езици, включително цикли for...each, while и do...while.

Инсталирайте Отидете в началото

Уверете се, че имате Отидете на инсталиране да следваш. Повечето от тези примери изискват fmt пакет и трябва да използвате цялостна структура като тази:

пакет главен

внос "fmt"

функцияглавен() {
// кодът отива тук
}

Трикомпонентен за цикъл в Go

Това е може би най-често срещаният for цикъл. Както подсказва името, той отнема три компонента: първоначална стойност, условие и пост изявление. Ето синтаксиса:

за инициализация; състояние; публикуване {
изявления)
}

В този цикъл, след инициализацията, условието се оценява. Ако е вярно, операторите в блока for цикъл се изпълняват, последвани от оператора post. Програмата повтаря този процес, докато условието престане да бъде вярно. По-долу е даден пример.

instagram viewer
за 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.

  1. Уверете се, че условието за първата итерация е вярно.
    аз := 10

    за следващо := вярно; следващия; следващо = i <= 5 {
    fmt.Println(и)
    i++
    }

    // Ще отпечата 10

    Тъй като първоначалното условие е вярно, и се отпечатва и след това се увеличава при първата итерация. Тъй като условието (аз <=5) се оценява на false по време на втората итерация, цикълът излиза.
  2. Изпълнете тялото на цикъла веднъж, преди да проверите условието.
    аз := 10

    за {
    fmt.Println(и)
    i++

    ако аз >= 5 {
    прекъсване;
    }
    }

    // Ще отпечата 10

    В цикъла for по-горе първо се отпечатва 10, което е стойността на i, след което се изпълнява операторът if. Ако условието е вярно, цикълът прекъсва, в противен случай цикълът продължава.

Други изявления за контролния поток

Циклите в програмирането са важни, защото опростяват повтарящите се задачи и спестяват време. Вместо да пишете ред код десет пъти, можете просто да създадете цикъл, който се изпълнява десет пъти. Други оператори за контролен поток са if, if...else, if...else if...if и оператори switch.

Какво е новото в Go версия 1.18

Прочетете Следващото

ДялтуитДялелектронна поща

Свързани теми

  • Програмиране
  • Програмиране

За автора

Мери Гатони (22 публикувани статии)

Мери Гатони е разработчик на софтуер със страст за създаване на техническо съдържание, което е не само информативно, но и ангажиращо. Когато не кодира или пише, тя обича да излиза с приятели и да е на открито.

Още от Mary Gathoni

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате