Bucla for în Go
Când trebuie să execuți același bloc de cod de un anumit număr de ori, folosește o buclă for.
Multe limbaje oferă mai multe tipuri de bucle, dar Go o are doar pe aceasta.
Sintaxa buclei for în Go
statement1 stabilește valoarea inițială a contorului buclei.
statement2 este testul efectuat la fiecare iterație. Un rezultat true menține bucla în execuție, iar un rezultat false o oprește.
statement3 mărește contorul.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
Sintaxa for
for statement1; statement2; statement3 {
// code to be executed for each iteration
}
Instrucțiunea continue
Folosește continue când vrei să sari peste restul iterației curente și să continui cu următoarea. Astfel poți sări peste una sau mai multe iterații. Aici se sare peste valoarea 3, așa că nu este afișată niciodată.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func main() {
for i := 0; i < 5; i++ {
if i == 3 {
continue
}
fmt.Println(i)
}
}
Instrucțiunea break
Instrucțiunea break încheie bucla imediat, chiar dacă condiția ei este încă adevărată. Aici bucla se oprește de îndată ce i ajunge la 3.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func main() {
for i := 0; i < 5; i++ {
if i == 3 {
break
}
fmt.Println(i)
}
}
Bucle imbricate
O buclă se poate afla în interiorul alteia. La fiecare trecere a buclei exterioare, bucla interioară se execută de la început până la sfârșit. În acest exemplu, fiecare adjectiv este afișat cu fiecare dintre cele trei fructe.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func main() {
adj := [2]string{"big", "tasty"}
fruits := [3]string{"apple", "orange", "banana"}
for i := 0; i < len(adj); i++ {
for j := 0; j < len(fruits); j++ {
fmt.Println(adj[i], fruits[j])
}
}
}
Cuvântul cheie range
Pentru a parcurge cu mai puțin cod elementele unui array, slice sau map, folosește cuvântul cheie range. În acest exemplu, îți oferă indexul și valoarea fiecărui element din array.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for idx, val := range fruits {
fmt.Printf("%v\t%v\n", idx, val)
}
}