Petlja for je naredba toka kontrole koja se koristi za uzastopno izvršavanje bloka koda. U Go, for petlja je jedina konstrukcija petlje.

Petlju for možete koristiti za ponavljanje blokova koda i simulaciju cijelog niza petlji iz drugih jezika, uključujući petlje for...each, while i do...while.

Instaliraj Idi na početak

Provjerite jeste li Idi instaliraj pratiti. Većina ovih primjera zahtijeva fmt paket, a trebali biste koristiti cjelokupnu strukturu poput ove:

paket glavni

uvoz "fmt"

funcglavni() {
// kod ide ovdje
}

Trokomponentni za petlju u Go

Ovo je možda najčešća for petlja. Kao što ime sugerira, potrebne su tri komponente: početna vrijednost, uvjet i izjava o objavi. Evo sintakse:

za inicijalizaciju; stanje; post {
izjava (e)
}

U ovoj petlji, nakon inicijalizacije, procjenjuje se uvjet. Ako je istinito, izvršavaju se izrazi u bloku petlje for, nakon čega slijedi naredba post. Program ponavlja ovaj proces sve dok uvjet više ne bude istinit. U nastavku je primjer.

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

Ovdje:

  • inicijalizacijski skupovi i do 1
  • uvjet je ja <= 5
  • post izjava je i++

Ova for petlja ispisuje trenutnu vrijednost i ako je manji ili jednak 5. "Izjava o objavi" dodaje 1 na i nakon svake petlje i jednom i dođe do 5, petlja se završava. Bez 'post izraza', petlja bi se izvršavala beskonačno vrijeme i potencijalno bi uzrokovala pad programa.

Petlja For-Each u Go

Go nema petlju for-each, ali možete modificirati petlju for kako biste prešli kolekciju elemenata. Evo sintakse:

za indeks, vrijednost := zbirka raspona {
// tijelo
}

Zbirka može biti niz, isječak, niz ili mapa ili vrijednosti primljene na kanalu. Indeks je pozicija u zbirci. Vrijednost je element u indeksu.

Ako vam je stalo samo do vrijednosti, izostavite indeks na sljedeći način:

za _, vrijednost := isječak raspona {}

U primjeru ispod, petlja prelazi niz i ispisuje i indeks i vrijednost svake stavke u njemu.

niz := []string{"zdravo", "svijet"}

za i, j := raspon niz {
fmt.Println(i, j)
}

Dok petlja u Go

Možete koristiti for petlju za postizanje dok funkcionalnost petlje. U petlji while, izjava se izvodi sve dok uvjet ostaje istinit. Uzmite u obzir sljedeće:

ja := 1

za ja <= 5 {
i *= 2
}

fmt.Println(i)

U ovom kodu, dok i je manji ili jednak 5, množi se s 2 svaki put kada se petlja izvodi.

Do...While Loop u Go

Petlja do...while se razlikuje od petlje while jer će se tijelo petlje izvršiti barem jednom. Postoje dva pristupa za implementaciju ovoga u Go.

  1. Provjerite je li uvjet za prvu iteraciju postavljen na istinito.
    ja := 10

    za sljedeći := pravi; Sljedeći; sljedeći = i <= 5 {
    fmt.Println(i)
    i++
    }

    // Ispisat će se 10

    Budući da je početni uvjet postavljen na istinito, i se ispisuje i zatim povećava u prvoj iteraciji. Budući da je uvjet (ja <=5) procijeni na false tijekom druge iteracije, petlja izlazi.
  2. Izvedite tijelo petlje jednom prije provjere uvjeta.
    ja := 10

    za {
    fmt.Println(i)
    i++

    ako ja >= 5 {
    pauza;
    }
    }

    // Ispisat će se 10

    U gornjoj for petlji prvo se ispisuje 10, što je vrijednost i, a zatim se izvršava naredba if. Ako je uvjet istinit, petlja se prekida, inače se petlja nastavlja.

Druge izjave toka kontrole

Petlje u programiranju su važne jer pojednostavljuju zadatke koji se ponavljaju i štede vrijeme. Umjesto pisanja retka koda deset puta, možete jednostavno stvoriti petlju koja se izvodi deset puta. Druge izjave tijeka kontrole su if, if...else, if...else if...if, i naredbe switch.

Što je novo u Go verziji 1.18

Pročitajte dalje

UdioCvrkutUdioE-mail

Povezane teme

  • Programiranje
  • Programiranje

O autoru

Mary Gathoni (Objavljeno 22 članka)

Mary Gathoni je programer softvera sa strašću za stvaranje tehničkog sadržaja koji nije samo informativan već i privlačan. Kad ne kodira i ne piše, uživa u druženju s prijateljima i na otvorenom.

Više od Mary Gathoni

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu