Lección 8 · 8 de 20
Bucles con for · Go
Repita instrucciones en Go con for, el único bucle del lenguaje: la forma clásica, como while, sin condición, break y continue.

Go tiene un solo bucle, for, que hace el trabajo de todos los demás. La forma clásica tiene tres partes separadas por punto y coma: i := 1 se ejecuta al empezar, i <= 5 se comprueba antes de cada vuelta e i++ se ejecuta al final de cada una. Así sale la tabla del 7, del 1 al 5.
Con solo la condición, for es el while de otros lenguajes: for savings < 150 repite mientras el ahorro no llegue a 150. Cada mes crece un 10 % (savings *= 1.10) y months++ lleva la cuenta: hacen falta 5 meses.
Sin condición, for { } repite para siempre, así que hay que salir con `break`. `continue` salta directamente a la vuelta siguiente: aquí descarta los números pares. El bucle escribe los cuadrados de los impares, 1 9 25 49, y se detiene en cuanto el cuadrado pasa de 50.
fmt.Print(n*n, " ") escribe cada número seguido de un espacio en la misma línea, y el Println final cierra la línea con una explicación.
Código · main.go
package mainimport "fmt"func main() { // Classic form: init; condition; post. for i := 1; i <= 5; i++ { fmt.Printf("%d x 7 = %d\n", i, i*7) } // Only a condition: this is Go's "while". savings, months := 100.0, 0 for savings < 150 { savings *= 1.10 months++ } fmt.Printf("%.2f euros after %d months\n", savings, months) // No condition at all: it repeats until break. n := 0 for { n++ if n%2 == 0 { continue // skip even numbers } if n*n > 50 { break // leave the loop } fmt.Print(n*n, " ") } fmt.Println("<- odd squares up to 50")}Salida · go run main.go
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 161.05 euros after 5 months 1 9 25 49 <- odd squares up to 50
Para recordar
fores el único bucle de Go.for inicio; condición; paso { }es la forma clásica.for condición { }funciona como un while.for { }repite hasta unbreak.continuepasa a la vuelta siguiente.
Ejercicio
Escriba con un for clásico la cuenta atrás de 10 a 1 (con i--) y, con un for de solo condición, cuántas veces se puede dividir 1000 entre 2 antes de bajar de 1.