jacquel
Novo Membro
Registrado
31 Mensagens
0 Curtidas
jacquel disse:Como eu faço em C para não usar o comando goto no programa? Existe alguma maneira para fazer isso?
jacquel disse:Como eu faço em C para não usar o comando goto no programa? Existe alguma maneira para fazer isso?
jcferranti disse:
Se for um principiante, analise bem seu código. Tenho quase certeza que o caminho do goto pode ser substituido por uma simples função, ou quem sabe apenas um if.
PS.: Depois que conheci melhor a programação estruturada, Passei a não entender pq o goto é necessário.
mcv disse:Você deve usar break em cada opção do switch. Exemplo:[php]case 1:
cadastro();
system("cls");
menu();
getchar();
break;
[/php]
Mas teoricamente o break e o continue dentro de loops tb quebram o fluxo de execução e não são tão "mal vistos"...Bem lembrado. Deve-se ao fato de break e continue localizarem-se dentro de um escopo. goto pode levar o fluxo do programa de um canto a outro do código sem praticamente restrição nenhuma.
for (ini;teste;incremento){
for (ini;teste;incremento){
for (ini;teste;incremento){
for (ini;teste;incremento){
if(teste) goto escapa;
}
}
}
}
escapa:
...
tpcvasco disse:Meu primeiro professor de programação na faculdade (q era um cara bem f*da de programação, aliás) dizia q TODO e QUALQUER (e ele enfatizava bem esse TODO e QUALQUER) programa em C que tenha GOTO pode ser reescrito (com outras estruturas de controle de código) de forma q o GOTO desapareça, mantendo exatamente o mesmo funcionamento do código.
Realmente não conhecia esse lance dos kernel's, mas eu acredito q seja mais por uma questão de eficiência, e não por ser impossível fazer de outra forma.
Aliás, esse é o jeito mais "normal" de se fazer. Eu aprendi switch usando sempre o break.
Mas isso me leva a outra questão, esse link q o mcv passou diz
https://www.hardware.com.br/comunidade/showpost/4087421.html
"o GOTO quebra o fluxo de execução do programa jogando a bomba na sua mão, ou seja, você terá que gerenciar o fluxo. Isto pode ser trivial em um programa de 50 linhas, mas torna-se extremanente complicado em programas maiores."
Mas teoricamente o break e o continue dentro de loops tb quebram o fluxo de execução e não são tão "mal vistos"...