DMarlon Studio

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 · Bucles con for en DMarlon Studio: el código del ejemplo y su salida en la terminal

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

  • for es 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 un break.
  • continue pasa 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.