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.