3
respostas

Usar o break não seria o mesmo que usar o goto em C?

Usar o break não seria o mesmo que usar o goto em C? Dapra usar mas pelo que lembro é uma pratica muito mal vista?

3 respostas

Oi Ernesto, tudo bem?

Desculpe a demora em retornar.

O break em Python é usado para interromper a execução do laço atual (for ou while), como você viu na aula. Quando o Python encontra o comando break, ele termina o laço imediatamente e continua a execução do programa a partir do próximo comando após o laço.

Por outro lado, o comando goto em C é uma instrução de controle de fluxo que permite que você pule para qualquer parte do programa, não apenas fora de um laço. Isso pode levar a um código confuso e difícil de entender, e é por isso que é geralmente considerado uma má prática.

Vamos ver um exemplo prático para entender melhor:

Em Python, se tivermos um laço como este:

for i in range(1,6):
    if i == 4:
        break
    print(i)

O programa imprimirá os números de 1 a 3 e, quando i for igual a 4, o laço será interrompido e o programa continuará a partir do próximo comando após o laço.

Então, em resumo, o break e o goto podem parecer semelhantes porque ambos podem interromper a execução de um laço. No entanto, o goto é mais geral e pode pular para qualquer parte do código, o que pode levar a um código confuso e difícil de seguir. Por isso, é considerado uma má prática em muitos casos. Já o break é mais controlado, pois só interrompe o laço atual e é geralmente aceito quando usado com moderação e sabedoria.

Um abraço e bons estudos.

Não entendi por que não seria má prática igual ao go to visto que não explica a lógica do comando por si só . Se fosse tem que forçar a saída de um laço desse jeito sua lógica não está com algum problema?

Oi Ernesto!

Vou tentar explicar de uma forma mais clara. Vamos lá:

O ponto principal é entender como esses dois comandos, o "break" em Python e o "goto" em C, funcionam e como afetam a estrutura do código.

1. O "break" em Python: O comando "break" em Python é projetado especificamente para ser usado dentro de laços (como "for" e "while"). Ele interrompe a execução do laço imediatamente quando uma determinada condição é atendida. A ideia por trás do "break" é fornecer uma maneira controlada de sair de um laço antes que ele complete todas as suas iterações. Isso é útil quando você encontra uma condição que torna desnecessário continuar percorrendo as iterações restantes do laço.

2. O "goto" em C: O comando "goto" em C é uma instrução de salto incondicional. Isso significa que ele permite que você vá para qualquer parte do código, não apenas sair de um laço, sem levar em consideração a estrutura lógica do programa. O problema com o "goto" é que ele pode levar a um código desorganizado e difícil de entender, porque os saltos podem ocorrer em qualquer lugar, tornando difícil rastrear o fluxo do programa e entender sua lógica.

Vamos comparar esses dois conceitos com uma analogia:

Imagine que você está lendo um livro com capítulos. O "break" seria como o marcador de página que você coloca em um capítulo, indicando que você leu até certo ponto e deseja pular para outro capítulo. É uma ação deliberada para não perder tempo lendo algo que não é relevante para você.

Por outro lado, o "goto" seria como um bilhete mágico que, quando usado, teleporta você para qualquer página do livro. Isso pode causar confusão, pois você pode pular partes importantes da história e ter dificuldade em acompanhar o enredo.

Voltando para a programação: quando usamos "break" em um laço, estamos indicando que algo específico aconteceu e não há necessidade de continuar percorrendo as iterações restantes. Já o "goto" permite pular para qualquer parte do código sem considerar a estrutura lógica.

Mas lembrando que o break tem que ser usado com moderação e sabedoria.

Espero que essa analogia tenha esclarecido a diferença e por que o "goto" é geralmente considerado uma má prática.

Um abraço e bons estudos.