Esta página também está disponível em outros 2 idiomas.

goto

[Control Structure]

Descrição

Transfere o fluxo do programa para um ponto rotulado no código.

Sintaxe

rótulo:

goto rótulo; // envia o fluxo do programa de volta para o rótulo

Código de Exemplo

O código abaixo "foge" de dentro de todos os laços caso a leitura no pino analógico 0 seja maior que 250.

for (byte r = 0; r < 255; r++) {
  for (byte g = 255; g > 0; g--) {
    for (byte b = 0; b < 255; b++) {
      if (analogRead(0) > 250) {
        goto cancelar;
      }
      // mais comandos ...
    }
  }
}

cancelar:
// mais comandos ...

Notas e Advertências

O uso do goto é desencorajado na programação em C++, e alguns autores de livros afirmam que o uso do comando goto nunca é necessário, mas se usado judiciosamente ele pode simplificar certos programas. A pela qual muitos programadores desaprovam o uso do goto é que com o uso descuidado de comando goto, é fácil criar um programa com fluxo indefinido, que não pode ser depurado.

Tendo dito isso, há algumas instâncias onde o comando goto pode ser considerado, por simplificar o código. Uma dessas situações é sair de laços for profundamente aninhados, ou blocos if, em determinada condição.

Ver Também