0Pricing
C++ Academy · Aula

Retornos antecipados, break, continue e goto

Reestruture condicionais aninhadas com retornos antecipados e use break, continue e goto com critério

Retornos antecipados, break, continue e goto é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

A pirâmide da desgraça

Condicionais profundamente aninhadas são difíceis de ler. Retornos antecipados simplificam drasticamente a estrutura.

// Pyramid
int process(int n) {
    if (n >= 0) {
        if (n < 100) {
            if (isValid(n)) {
                return compute(n);
            }
        }
    }
    return -1;
}

Refatorando com retornos antecipados

Saia assim que uma pré-condição falhar. Cada cláusula de guarda é uma instrução curta e independente.

int process(int n) {
    if (n < 0)      return -1;
    if (n >= 100)   return -1;
    if (!isValid(n)) return -1;
    return compute(n);
}

Cláusulas de guarda

Uma cláusula de guarda rejeita entradas inválidas no início de uma função. Isso torna evidente o fluxo principal.

break em laços

Saia de um laço quando encontrar o que procura ou quando um erro tornar inútil continuar.

continue: pular o restante

Use continue para pular casos que não se aplicam, sem aninhar o restante do corpo.

for (auto& item : items) {
    if (item.skipped) continue;
    process(item);
}

Saindo de laços aninhados

break sai de apenas um nível. Para sair de vários níveis, use uma variável de controle, extraia a lógica para uma função ou use goto como último recurso.

bool found = false;
for (int i = 0; i < n && !found; ++i) {
    for (int j = 0; j < m; ++j) {
        if (grid[i][j] == target) {
            found = true;
            break;
        }
    }
}

A instrução goto

O C++ herdou goto da linguagem C. O código moderno raramente precisa dele — mas há um uso legítimo: sair de laços aninhados ou de caminhos de erro.

for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) {
        if (error_condition) goto cleanup;
    }
}

cleanup:
free_resources();

Por que goto é desencorajado

Eliminando goto com refatoração

A maioria dos usos de goto pode ser substituída por:

  • Extrair o bloco interno para uma função
  • Usar uma variável de controle
  • Lançar e capturar uma exceção

return em destrutores

Você não pode retornar antecipadamente de um destrutor usando return; no início — destrutores não retornam valores. Mas pode estruturá-los com condições antecipadas para pular operações.

O estilo de saída única (antigo)

Códigos antigos às vezes usavam um único return no final e uma variável de resultado. O C++ moderno favorece vários retornos antecipados para manter a clareza. RAII cuida da limpeza automaticamente.

Verificação rápida

Qual técnica de fluxo de controle substitui com mais clareza cadeias de if-else aninhadas em uma função?

Recapitulação

Use retornos antecipados como cláusulas de guarda, break e continue com moderação para deixar a intenção clara, e goto apenas para raras saídas de laços aninhados ou caminhos de limpeza. O objetivo é ter um fluxo de controle legível e simples.

Perguntas Frequentes

A aula “Retornos antecipados, break, continue e goto” é grátis?

Sim — o texto completo de “Retornos antecipados, break, continue e goto” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Retornos antecipados, break, continue e goto”?

Reestruture condicionais aninhadas com retornos antecipados e use break, continue e goto com critério Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Retornos antecipados, break, continue e goto”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ramificações: if-else, ternário, switch-case
  2. Padrões de ciclos: for, while, do-while
  3. Ciclo for baseado em intervalos com contentores
  4. Retornos antecipados, break, continue e goto
← Voltar para C++ Academy