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)
}
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.
- Veenduge, et esimese iteratsiooni tingimuseks oleks seatud tõene.
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.mina := 10
jaoks järgmine := tõsi; järgmine; järgmine = i <= 5 {
fmt.Println(i)
i++
}// Trükitakse 10
- Enne seisundi kontrollimist käivitage silmuse keha üks kord.
Ü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.mina := 10
jaoks {
fmt.Println(i)
i++kui ma >= 5 {
murda;
}
}// Trükitakse 10
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
Seotud teemad
- Programmeerimine
- Programmeerimine
Autori kohta
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.
Liituge meie uudiskirjaga
Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!
Tellimiseks klõpsake siin