Silmus for on juhtimisvoo avaldus, mida kasutatakse koodiploki korduvaks täitmiseks. Go puhul on silmus for ainus silmuskonstruktsioon.

For-silmust saate kasutada koodiplokkide kordamiseks ja paljude teiste keelte tsüklite simuleerimiseks, sealhulgas for...each, while tsüklid ja do...while tsüklid.

Install Minge algusesse

Veenduge, et teil on Mine installitud kaasa järgnema. Enamik neist näidetest nõuavad fmt paketti ja peaksite kasutama sellist üldist struktuuri:

pakett peamine

importida "fmt"

funcpeamine() {
// kood läheb siia
}

Kolmekomponendiline loop in Go

See on silmuse jaoks võib-olla kõige tavalisem. Nagu nimigi viitab, on selleks kolm komponenti: algväärtus, tingimus ja postitusavaldus. Siin on süntaks:

initsialiseerimiseks; seisund; postitus {
avaldus(ed)
}

Selles tsüklis hinnatakse pärast lähtestamist tingimust. Kui see on tõene, käivitatakse tsükliploki for laused, millele järgneb postlause. Programm kordab seda protsessi seni, kuni tingimus ei ole enam tõene. Allpool on näide.

i jaoks := 1; i <= 5; i++ {
fmt.Println(i)
}
instagram viewer

Siin:

  • lähtestamiskomplektid i juurde 1
  • tingimus on ma <= 5
  • postituse avaldus on i++

See for loop prindib praeguse väärtuse i kui see on väiksem või võrdne 5-ga. "Postitusavaldus" lisab 1 i pärast iga silmust ja üks kord i jõuab 5-ni, tsükkel lõpeb. Ilma "postitusavalduseta" käivituks tsükkel lõpmatu arv aegu ja põhjustaks potentsiaalselt programmi kokkujooksmise.

For-Each Loop Go

Go-l ei ole for-each tsüklit, kuid elementide kogumi läbimiseks saate tsüklit for muuta. Siin on süntaks:

indeksi jaoks väärtus := vahemiku kogum {
// keha
}

Kogumik võib olla massiiv, viil, string või kaart või kanalile vastuvõetud väärtused. Indeks on positsioon kogus. Väärtus on indeksi element.

Kui hoolite ainult väärtusest, jätke indeks välja järgmiselt:

_ jaoks väärtus := vahemiku slice {}

Allolevas näites läbib tsükkel massiivi ja prindib nii indeksi kui ka iga selles sisalduva üksuse väärtuse.

massiiv := []string{"Tere", "maailmas"}

jaoks i, j := vahemik massiivi {
fmt.Println(i, j)
}

A While Loop in Go

Selle saavutamiseks võite kasutada for-silmust samas silmuse funktsionaalsus. Mingi tsükli jooksul töötab väide seni, kuni tingimus jääb tõeseks. Kaaluge järgmist.

mina := 1

i jaoks <= 5 {
i *= 2
}

fmt.Println(i)

Selles koodis, samas i on väiksem või võrdne 5-ga, korrutatakse see 2-ga iga kord, kui tsükkel töötab.

A Do...While Loop in Go

Silmus do...while erineb while tsüklist, kuna tsükli keha käivitab vähemalt korra. Go-s on selle rakendamiseks kaks lähenemisviisi.

  1. Veenduge, et esimese iteratsiooni tingimuseks oleks seatud tõene.
    mina := 10

    jaoks järgmine := tõsi; järgmine; järgmine = i <= 5 {
    fmt.Println(i)
    i++
    }

    // Trükitakse 10

    Kuna algtingimuseks on seatud tõene, i prinditakse ja suurendatakse seejärel esimeses iteratsioonis. Kuna tingimus (mina <=5) hindab teise iteratsiooni ajal vääraks, tsükkel väljub.
  2. Enne seisundi kontrollimist käivitage silmuse keha üks kord.
    mina := 10

    jaoks {
    fmt.Println(i)
    i++

    kui ma >= 5 {
    murda;
    }
    }

    // Trükitakse 10

    Ülaltoodud for-tsüklis trükitakse kõigepealt 10, mis on i väärtus, seejärel käivitatakse if-lause. Kui tingimus on tõene, siis tsükkel katkeb, vastasel juhul tsükkel jätkub.

Muud kontrollivoo avaldused

Programmeerimise tsüklid on olulised, kuna need lihtsustavad korduvaid ülesandeid ja säästavad aega. Selle asemel, et kirjutada koodirida kümme korda, saate lihtsalt luua tsükli, mis jookseb kümme korda. Muud juhtimisvoo laused on if, if...else, if...else if...if ja switch.

Mis on uut Go versioonis 1.18?

Loe edasi

JagaSäutsJagaMeil

Seotud teemad

  • Programmeerimine
  • Programmeerimine

Autori kohta

Mary Gathoni (Avaldatud 22 artiklit)

Mary Gathoni on tarkvaraarendaja, kelle kirg on luua tehnilist sisu, mis pole mitte ainult informatiivne, vaid ka kaasahaarav. Kui ta ei kodeeri ega kirjuta, naudib ta sõpradega aega veetmist ja õues olemist.

Rohkem Mary Gathonist

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin