Ciklas for yra valdymo srauto sakinys, naudojamas pakartotinai vykdyti kodo bloką. „Go“ sistemoje „for“ yra vienintelė kilpos konstrukcija.

Galite naudoti for kilpą, kad kartotumėte kodo blokus ir imituotumėte visą eilę kilpų iš kitų kalbų, įskaitant for...each, while ciklus ir do...while ciklus.

Įdiegti Eikite į pradžią

Įsitikinkite, kad turite Eik įdiegta sekti kartu. Daugumai šių pavyzdžių reikia fmt paketą ir turėtumėte naudoti tokią bendrą struktūrą:

paketą pagrindinis

importuoti "fmt"

funcpagrindinis() {
// kodas eina čia
}

Trijų komponentų, skirtų Loop in Go

Tai turbūt labiausiai paplitusi kilpai. Kaip rodo pavadinimas, jį sudaro trys komponentai: pradinė vertė, sąlyga ir pranešimas. Štai sintaksė:

inicijavimui; būklė; post {
pareiškimas (-ai)
}

Šioje kilpoje po inicijavimo įvertinama sąlyga. Jei teisinga, vykdomi teiginiai ciklo bloke, o po to - post teiginys. Programa kartoja šį procesą, kol sąlyga nebebus vertinama kaip teisinga. Žemiau yra pavyzdys.

už i := 1; i <= 5; i++ {
fmt.Spausdinti(i)
}
instagram viewer

Čia:

  • inicijavimo rinkiniai i į 1
  • sąlyga yra aš <= 5
  • pašto pareiškimas yra i++

Šis ciklas atspausdina dabartinę reikšmę i jei jis yra mažesnis arba lygus 5. „Paskelbimo pareiškimas“ pridedamas prie 1 i po kiekvienos kilpos ir vieną kartą i pasiekia 5, ciklas baigiasi. Be „post pareiškimo“, ciklas būtų vykdomas be galo daug kartų ir dėl to programa gali sugesti.

„Kiekvienam“ kilpa

Go neturi kiekvienos kilpos, bet galite modifikuoti for kilpą, kad pereitumėte elementų rinkinį. Štai sintaksė:

indeksui vertė := diapazono rinkinys {
// kūnas
}

Kolekcija gali būti masyvas, pjūvis, eilutė ar žemėlapis arba kanale gautos reikšmės. Indeksas yra pozicija kolekcijoje. Vertė yra indekso elementas.

Jei jums rūpi tik vertė, praleiskite tokį indeksą:

_, reikšmė := diapazono skiltis {}

Toliau pateiktame pavyzdyje kilpa kerta masyvą ir išspausdina kiekvieno jame esančio elemento indeksą ir reikšmę.

masyvas := []eilutė{"Sveiki", "pasaulis"}

dėl i, j := diapazonas masyvas {
fmt.Spausdinti(i, j)
}

A While Loop in Go

Norėdami pasiekti, galite naudoti for kilpą o ciklo funkcionalumas. Kai ciklo metu teiginys veikia tol, kol sąlyga išlieka teisinga. Apsvarstykite šiuos dalykus:

aš := 1

už aš <= 5 {
aš *= 2
}

fmt.Spausdinti(i)

Šiame kode, o i yra mažesnis arba lygus 5, jis dauginamas iš 2 kiekvieną kartą, kai vyksta ciklas.

A Do...While Loop in Go

Ciklas do...while skiriasi nuo while, nes ciklo korpusas bus vykdomas bent kartą. Yra du būdai, kaip tai įgyvendinti Go.

  1. Įsitikinkite, kad pirmosios iteracijos sąlyga yra teisinga.
    aš := 10

    dėl kitas := tiesa; Kitas; kitas = aš <= 5 {
    fmt.Spausdinti(i)
    i++
    }

    // Spausdins 10

    Kadangi pradinė sąlyga nustatyta kaip tiesa, i atspausdinamas, o tada padidinamas per pirmąją iteraciją. Nuo būklės (aš <=5) per antrąją iteraciją įvertina kaip false, ciklas išeina.
  2. Prieš patikrindami būklę, vieną kartą paleiskite kilpos korpusą.
    aš := 10

    dėl {
    fmt.Spausdinti(i)
    i++

    jeigu aš >= 5 {
    pertrauka;
    }
    }

    // Spausdins 10

    Aukščiau esančioje for kilpoje pirmiausia atspausdinama 10, kuri yra i reikšmė, tada įvykdomas if sakinys. Jei sąlyga teisinga, ciklas nutrūksta, priešingu atveju ciklas tęsiasi.

Kiti valdymo srauto pareiškimai

Programavimo kilpos yra svarbios, nes jos supaprastina pasikartojančias užduotis ir taupo laiką. Užuot rašę kodo eilutę dešimt kartų, galite tiesiog sukurti dešimt kartų paleidžiamą kilpą. Kiti valdymo srauto teiginiai yra if, if...else, if...else if...if ir perjungimo teiginiai.

Kas naujo „Go“ 1.18 versijoje

Skaitykite toliau

DalintisTviteryjeDalintisEl. paštas

Susijusios temos

  • Programavimas
  • Programavimas

Apie autorių

Marija Gathoni (Paskelbta 22 straipsniai)

Mary Gathoni yra programinės įrangos kūrėja, kuri aistringai kuria techninį turinį, kuris būtų ne tik informatyvus, bet ir įtraukiantis. Kai ji nekoduoja ir nerašo, jai patinka leisti laiką su draugais ir būti lauke.

Daugiau iš Mary Gathoni

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Spauskite čia norėdami užsiprenumeruoti