Usar bucles for en Go le permite automatizar y repetir tareas de forma eficiente.
Aprender a controlar el funcionamiento y el flujo de los bucles hará posible una lógica personalizada en su programa. Puede controlar sus bucles con las instrucciones break
y continue
.
En Go, la instrucción break
finaliza la ejecución del bucle actual. Una instrucción break
casi siempre se sincroniza con una instrucción condicional if
.
Veamos un ejemplo en el que se utiliza la instrucción break
en un bucle for
:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("Breaking out of loop")
break // break here
}
fmt.Println("The value of i is", i)
}
fmt.Println("Exiting program")
}
Este pequeño programa crea un bucle for
que se iterará mientras i
sea inferior a 10
.
En el bucle for
, hay una instrucción if
. La instrucción if
prueba la condición de i
para ver si el valor es inferior a 5
. Si el valor de i
no es igual a 5
, el bucle continúa e imprime el valor de i
. Si el valor de i
es igual a 5
, el bucle ejecuta la instrucción break
, imprime Breaking out of loop
y deja de ejecutarse. Al final del programa, imprimimos Exiting program
para indicar que cerramos el bucle.
Cuando ejecutemos este código, el resultado será el siguiente:
OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Breaking out of loop
Exiting program
Esto muestra que una vez que se evalúa el entero i
como equivalente a 5, el bucle se rompe porque se indica al programa que lo haga con la instrucción break
.
Es importante recordar que la instrucción break
solo detendrá la ejecución del bucle más interno en el que se invoca. Si tiene un conjunto de bucles anidados, necesitará una instrucción break para cada bucle, si lo desea.
package main
import "fmt"
func main() {
for outer := 0; outer < 5; outer++ {
if outer == 3 {
fmt.Println("Breaking out of outer loop")
break // break here
}
fmt.Println("The value of outer is", outer)
for inner := 0; inner < 5; inner++ {
if inner == 2 {
fmt.Println("Breaking out of inner loop")
break // break here
}
fmt.Println("The value of inner is", inner)
}
}
fmt.Println("Exiting program")
}
En este programa, hay dos bucles. Aunque ambos bucles se repiten 5 veces, cada uno tiene una instrucción if
condicional con una instrucción break
. El bucle externo se interrumpirá si el valor de outer
es igual a 3
. El bucle interno se interrumpirá si el valor de inner
es 2
.
Si ejecutamos el programa, veremos el siguiente resultado:
OutputThe value of outer is 0
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 1
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 2
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
Breaking out of outer loop
Exiting program
Observe que cada vez que se interrumpe el bucle interno, no sucede lo mismo con el externo. Esto es porque break
solo interrumpirá el bucle más interno desde el que se invoca.
Hemos visto cómo el uso de break
detendrá la ejecución de un bucle. A continuación, veremos la forma de continuar la iteración de un bucle.
La instrucción continue
se usa cuando se busca omitir la parte restante del bucle, volver a la parte superior de este y continuar con una nueva iteración.
Como en el caso de la instrucción break
, la instrucción continue
se utiliza comúnmente con una instrucción if
condicional.
Usando el mismo programa de bucle for
que en la sección Instrucción break, emplearemos la instrucción continue
en vez de break
:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("Continuing loop")
continue // break here
}
fmt.Println("The value of i is", i)
}
fmt.Println("Exiting program")
}
La diferencia al usar la instrucción continue
en vez de una instrucción break
radica en que nuestro código continuará a pesar de la interrupción cuando la variable i
se evalúe como equivalente a 5
. Veamos el resultado:
OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Continuing loop
The value of i is 6
The value of i is 7
The value of i is 8
The value of i is 9
Exiting program
Aquí vemos que la línea The value of i is 5
nunca se aparece en el resultado, pero el bucle continúa después de ese punto para imprimir líneas para los números 6 a 10 antes de cerrarse.
Puede usar la instrucción continue
para evitar código condicional profundamente anidado o para optimizar un bucle eliminando los casos frecuentes que desee rechazar.
La instrucción continue
hace que un programa omita determinados factores que surgen dentro de un bucle, pero luego continuará con resto de este.
Las instrucciones break
y continue
en Go le permitirán usar los bucles for
de forma más eficaz en su código.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!