Cyklus for je príkaz riadiaceho toku používaný na opakované vykonávanie bloku kódu. V Go je cyklus for jedinou konštrukciou cyklu.

Slučku for môžete použiť na opakovanie blokov kódu a simuláciu celej škály slučiek z iných jazykov, vrátane slučiek for...each, while a do...while.

Inštalácia Prejsť na začiatok

Uistite sa, že máte Prejdite na inštaláciu nasledovať. Väčšina z týchto príkladov vyžaduje fmt balík a mali by ste použiť celkovú štruktúru, ako je táto:

balík hlavné

importovať "fmt"

funchlavné() {
// kód ide sem
}

Trojzložkový pre Loop in Go

Toto je možno najbežnejšia slučka for. Ako už názov napovedá, má tri komponenty: počiatočnú hodnotu, podmienku a príkaz post. Tu je syntax:

na inicializáciu; stav; príspevok {
Vyhlásenia)
}

V tejto slučke sa po inicializácii vyhodnotí podmienka. Ak je pravda, vykonajú sa príkazy v bloku cyklu for, po ktorých nasleduje príkaz post. Program tento proces opakuje dovtedy, kým sa podmienka už nevyhodnocuje ako pravdivá. Nižšie je uvedený príklad.

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

Tu:

  • inicializačné sady i do 1
  • podmienkou je i <= 5
  • vyhlásenie o príspevku je i++

Táto slučka for vytlačí aktuálnu hodnotu i ak je menšie alebo rovné 5. „Poštový výpis“ pridáva 1 k i po každej slučke a raz i dostane na 5, cyklus sa ukončí. Bez „príkazu post“ by sa slučka vykonávala nekonečne krát a potenciálne by spôsobila zlyhanie programu.

A For-Each Loop in Go

Go nemá cyklus for-each, ale cyklus for môžete upraviť tak, aby prechádzal kolekciou prvkov. Tu je syntax:

pre index, hodnota := rozsah kolekcia {
// telo
}

Kolekcia môže byť pole, rez, reťazec alebo mapa alebo hodnoty prijaté na kanáli. Index je pozícia v kolekcii. Hodnota je prvok v indexe.

Ak vám záleží len na hodnote, vynechajte index takto:

pre _, hodnota := výsek rozsahu {}

V nižšie uvedenom príklade slučka prechádza poľom a vytlačí index aj hodnotu každej položky v ňom.

pole := []reťazec{"Ahoj", "sveta"}

pre i, j:= rozsah pole {
fmt.Println(i, j)
}

A While Loop in Go

Na dosiahnutie môžete použiť cyklus for zatiaľ čo funkcia slučky. V slučke while príkaz beží tak dlho, kým podmienka zostáva pravdivá. Zvážte nasledovné:

ja := 1

pre i <= 5 {
ja *= 2
}

fmt.Println(i)

V tomto kóde, zatiaľ čo i je menšia alebo rovná 5, vynásobí sa 2 pri každom spustení slučky.

A Do... Kým sa slučka spustí

Cyklus do...while sa líši od cyklu while, pretože telo cyklu sa vykoná aspoň raz. Existujú dva prístupy, ako to implementovať v Go.

  1. Uistite sa, že podmienka pre prvú iteráciu je nastavená na hodnotu true.
    ja:= 10

    pre ďalšie := pravda; Ďalšie; ďalšie = i <= 5 {
    fmt.Println(i)
    i++
    }

    // Vytlačí 10

    Keďže počiatočná podmienka je nastavená na hodnotu true, i sa vytlačí a potom sa zvýši v prvej iterácii. Od podmienky (ja <=5) vyhodnotí ako nepravda počas druhej iterácie, cyklus sa ukončí.
  2. Vykonajte telo cyklu raz pred kontrolou podmienky.
    ja:= 10

    pre {
    fmt.Println(i)
    i++

    Ak ja >= 5 {
    prestávka;
    }
    }

    // Vytlačí 10

    V slučke for vyššie sa najskôr vytlačí 10, čo je hodnota i, a potom sa vykoná príkaz if. Ak je podmienka pravdivá, cyklus sa preruší, inak cyklus pokračuje.

Ďalšie vyhlásenia o kontrolnom toku

Slučky pri programovaní sú dôležité, pretože zjednodušujú opakujúce sa úlohy a šetria čas. Namiesto toho, aby ste písali riadok kódu desaťkrát, môžete jednoducho vytvoriť slučku, ktorá sa spustí desaťkrát. Ďalšie príkazy riadiaceho toku sú if, if...else, if...else if...if a switch.

Čo je nové vo verzii Go 1.18

Prečítajte si ďalej

zdieľamTweetujtezdieľamEmail

Súvisiace témy

  • Programovanie
  • Programovanie

O autorovi

Mary Gathoni (22 publikovaných článkov)

Mary Gathoni je softvérová vývojárka s vášňou pre vytváranie technického obsahu, ktorý je nielen informatívny, ale aj pútavý. Keď práve nekóduje alebo nepíše, rada sa stretáva s priateľmi a je vonku.

Viac od Mary Gathoni

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber