Base de Conhecimento

Usando instruções Break e Continue ao trabalhar com loops no Go  Imprimir este Artigo

Introdução

O uso de loops no Go permite automatizar e repetir tarefas de maneira eficiente.

Aprender a controlar a operação e o fluxo de loops permitirá lógica personalizada em seu programa. Você pode controlar seus loops com as instruções breakcontinue.

Declaração de quebra

No Go, a breakinstrução finaliza a execução do loop atual. breakquase sempre é emparelhado com uma declaração condicionalif .

Vejamos um exemplo que usa a breakinstrução em um forloop:

break.go
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 forloop que irá iterar enquanto ifor menor que 10.

Dentro do forloop, há uma ifdeclaração. ifinstrução testa a condição de ipara ver se o valor é menor que 5Se o valor de inão for igual a 5, o loop continuará e imprimirá o valor de iSe o valor de ifor igual a 5, o loop executará a breakinstrução, imprimirá o que é Breaking out of loope interromperá a execução do loop. No final do programa, imprimimos Exiting programpara indicar que saímos do loop.

Quando executamos esse código, nossa saída será a seguinte:

Output
The 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 é interrompido, conforme o programa é instruído a fazer isso com a breakinstrução

Loops aninhados

É importante lembrar que a breakinstrução interromperá a execução do loop mais interno em que é chamada. Se você tiver um conjunto aninhado de loops, precisará de uma pausa para cada loop, se desejar.

nested.go
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. Enquanto os dois loops repetem 5 vezes, cada um tem uma ifdeclaração condicional com uma breakdeclaração. O loop externo será interrompido se o valor for outerigual 3O loop interno será interrompido se o valor de innerfor 2.

Se rodarmos o programa, podemos ver a saída:

Output
The 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 o loop interno quebra, o loop externo não quebra. Isso ocorre porque breakapenas interromperá o loop mais interno do qual é chamado.

Vimos como o uso breakinterromperá a execução de um loop. A seguir, vejamos como podemos continuar a iteração de um loop.

Declaração Continue

continueinstrução é usada quando você deseja pular a parte restante do loop, retornar à parte superior do loop e continuar uma nova iteração.

Como na breakdeclaração, a continuedeclaração é comumente usada com uma ifdeclaração condicional .

Usando o mesmo forprograma de loop que na seção Break Statement anterior , usaremos uma continuedeclaração em vez de uma breakdeclaração:

continue.go
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 em usar a continueinstrução em vez de uma breakinstrução é que nosso código continuará apesar da interrupção quando a variável ifor avaliada como equivalente a 5Vejamos nossa saída:

Output
The 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 5nunca ocorre na saída, mas o loop continua depois desse ponto para imprimir linhas para os números 6 a 10 antes de sair do loop.

Você pode usar a continueinstrução para evitar código condicional profundamente aninhado ou para otimizar um loop, eliminando casos frequentes que você gostaria de rejeitar.

continueinstrução faz com que um programa ignore certos fatores que surgem dentro de um loop, mas continua pelo restante do loop.

Conclusão

As instruções breakcontinueno Go permitem que você use forloops com mais eficiência no seu código.

Esta resposta lhe foi útil?

Veja também

Como usar os módulos Node.js com npm e package.json
Introdução Devido a esses recursos, como o rápido desempenho de Entrada / Saída (E / S) e a...
Como usar funções variáveis ​​em Go
Introdução Uma função variável é uma função que aceita zero, um ou mais valores como um único...
Introdução ao Kubernetes: dicas do kubectl
Introdução O Kubectl é uma ferramenta de linha de comando projetada para gerenciar objetos e...
Tutorial: Como fazer conexões SSH
Olá,Nesse artigo iremos explicar como conectar em um Servidor Linux com SSH Server(Secure...
Como configurar os relatórios MTA-STS e TLS para o seu domínio usando o Apache no Ubuntu 18.04
Introdução O MTA-STS (Security Strict Transport Security) do Mail Transport Agent é um novo...