O uso de loops do tipo “for” em Go permite que você automatize e repita tarefas de maneira eficiente.
Aprender como controlar a operação e o fluxo dos loops permitirá uma lógica personalizada em seu programa. É possível controlar seus loops com as instruções break
[interromper] e continue
[continuar].
Em Go, a instrução break
termina a execução do loop atual. Uma break
está quase sempre pareada com uma instrução condicional if
.
Vamos ver um exemplo que usa a instrução break
em um loop do tipo "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 pequeno programa cria um loop do tipo "for"
que irá iterar enquanto i
for menor que 10
.
Dentro do loop do tipo "for"
, há uma instrução if
. A instrução if
testa a condição de i
para ver se o valor é menor que 5
. Se o valor i
não for igual a 5
, o loop continua e imprime o valor de i
. Se o valor de i
for igual a 5
, o loop irá executar a instrução break
, imprimir que ele está Breaking out of loop
[Saindo do loop] e parar de executar o loop. Ao final do programa, imprimimos Exiting program
[Saindo do programa] para exprimir que saímos do loop.
Quando executarmos esse código, nosso resultado será o seguinte:
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
Isso mostra que, uma vez que o número inteiro i
é avaliado como equivalente a 5, o loop interrompe, uma vez que o programa é orientado a fazer isso com a instrução break
.
É importante lembrar que a instrução break
irá parar apenas a execução do loop mais interno em que for chamada. Se tiver um conjunto aninhado de loops, será necessário uma interrupção para cada loop se desejar.
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")
}
Neste programa, temos dois loops. Embora ambos iterem 5 vezes, cada um tem uma instrução condicional if
com uma instrução break
. O loop exterior será interrompido se o valor outer
for igual a 3
. O loop interno será interrompido se o valor inner
for 2
.
Se executarmos o programa, veremos o seguinte 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
Note que cada vez que o loop interno é interrompido, o loop exterior não é. Isso acontece porque o break
irá interromper apenas o loop mais interno de onde for chamado.
Vimos de que maneira o uso da instrução break
irá interromper a execução de um loop. Em seguida, vamos ver como é possível continuar a iteração de um loop.
A instrução continue
é usada quando você quer pular a parte restante do loop, retornar ao topo do loop e dar continuidade a uma nova iteração.
Tal como com a instrução break
, a instrução continue
é comumente usada com uma instrução condicional if
.
Usando o mesmo programa de loop do tipo "for"
que na seção anterior da Instrução break, usaremos uma instrução continue
, em vez de uma instrução 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")
}
A diferença entre usar a instrução continue,
em vez de uma instrução break,
é que o nosso código continuará apesar da interrupção quando a variável i
for avaliada como equivalente a 5
. Vamos ver nosso 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
Aqui, vemos que a linha The value of i is 5
[O valor de i é 5] nunca ocorre no resultado, mas o loop continua após aquele ponto para imprimir linhas para os números 6-10 antes de sair do loop.
Você pode usar a instrução continue
para evitar um código condicional extremamente aninhado, ou para otimizar um loop, eliminando casos que ocorram com frequência e que você gostaria de rejeitar.
A instrução continue
faz com que um programa pule certos fatores que surjam dentro de um loop, mas depois continuem pelo restante do loop.
As instruções break
e continue
em Go permitirão que você use loops do tipo "for"
de maneira mais eficaz em seu 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!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.