Published
Last modified
C/C++ - Labels e GOTO
C, e consequentemente C++, são linguagens de origem procedural que tinham que utilizar meios de executar a programação de forma não totalmente linear fazendo saltos para pontos específicos do código usando rótulos e o comando GOTO.

Os rótulos (labels) e saltos (goto) são resquícios da época em que a programação era totalmente procedural, inclusive pode ser visto em blocos como o do switch. Esta forma de programar não é mais praticada com tanta frequência, mas ainda há como fazer.
Primeiramente marcamos uma linha do código com um rótulo (também conhecido como label) e toda vez que quisermos voltar ou seguir até tal linha apenas indicamos onde o programa deve seguir.
Em C/C++ para indicarmos um rótulo (label) escrevemos um nome no local que desejamos marcar. Para ir até este local usamos o comando GOTO.
O rótulo (label) é indicado pelo uso de dois pontos (:) no final da linha.
GOTO é um comando como qualquer outro. Portanto, deve-se terminar a linha com um ponto-e-vírgula (;).
Ele ficariam assim:
rotulo : código goto rotulo ;
Aplicado em um código ficaria assim:
#include <iostream>
#include <cstdlib>
using namespace std;
int main (void){
char opcao;
inicio:
cout <<"voce deseja que este programa repita? [s/n]";
cin >> opcao;
cin.ignore();
if (opcao == 's' || opcao =='S')
goto inicio;
else if (opcao == 'n' || opcao =='N')
goto fim;
else
goto inicio;
fim:
return EXIT_SUCCESS;
}
Como podemos ver, isso era utilizado antigamente na programação procedural para acessar pontos definidos do código. Hoje em dia é mais comum utilizamos outras formas para programar como paradigmas conhecidos como Orientação a Objeto e Orientação a Funções.

C/C++ - Labels e GOTO by Denys Xavier is licensed under a Creative Commons Attribution 4.0 International License.