🔁 Laços e Condicionais
"Estruturas de controle são os mecanismos que permitem alterar o fluxo linear de execução de um programa, tomando decisões (condicionais) ou repetindo blocos de código (laços)."
Todo programa útil precisa tomar decisões e repetir tarefas. As estruturas de controle são os blocos fundamentais que permitem implementar lógica condicional e iterações. C/C++ oferece um conjunto rico e flexível dessas estruturas, herdado do C e expandido no C++ moderno.
🔀 Condicionais
As estruturas condicionais permitem executar diferentes blocos de código com base em condições lógicas.
📌 if e else
A estrutura mais básica: executa um bloco se a condição for verdadeira, opcionalmente executa outro bloco se for falsa.
📌 switch
Útil para múltiplas escolhas baseadas no valor de uma expressão inteira ou enumerada. Mais legível e potencialmente mais eficiente que longas cadeias de if-else.
break, a execução "cai" para o próximo caso (fall-through), o que pode ser desejado em situações específicas, mas geralmente é um erro.
📌 Switch com Fall-through Controlado (C++17)
Para documentar intencionalmente a ausência de break, use o atributo [[fallthrough]].
🔄 Laços de Repetição
Os laços permitem executar um bloco de código múltiplas vezes.
🔹 for
Ideal quando o número de iterações é conhecido antecipadamente.
for (int i = 0; i < 10; i++)
🔹 while
Executa enquanto a condição for verdadeira. A condição é verificada antes de cada iteração.
while (condicao) { ... }
🔹 do-while
Executa o bloco pelo menos uma vez, pois a condição é verificada depois.
do { ... } while (condicao);
📌 Laço for
📌 Laço while
📌 Laço do-while
🛑 Controle de Fluxo nos Laços
Duas palavras-chave permitem controlar a execução dentro dos laços.
| Comando | Efeito |
|---|---|
break | Encerra imediatamente o laço mais interno. |
continue | Pula para a próxima iteração do laço, ignorando o restante do bloco atual. |
📊 Comparação dos Laços
| Laço | Quando Usar | Número de Execuções |
|---|---|---|
for | Número de iterações conhecido ou baseado em contador | 0 ou mais |
while | Condição deve ser verificada antes de executar | 0 ou mais |
do-while | Bloco deve ser executado pelo menos uma vez | 1 ou mais |
⚠️ Cuidados e Boas Práticas
- Evite loops infinitos acidentais: Certifique-se de que a condição de parada será eventualmente atingida.
- Prefira
forquando o número de iterações for conhecido. - Use chaves
{}mesmo para blocos de uma linha: Evita erros ao adicionar novas linhas depois. - Em C++, prefira range-based for (
for (auto x : container)) para iterar sobre coleções. - Cuidado com condições complexas no
while: Considere extrair a lógica para uma função se ficar difícil de ler.
; após a condição de um while ou for cria um corpo vazio, geralmente resultando em loop infinito ou comportamento inesperado.
🔗 Conclusão
Dominar laços e condicionais é o primeiro passo para escrever programas verdadeiramente dinâmicos e responsivos. A combinação adequada de if, switch, for, while e do-while permite implementar qualquer lógica de controle necessária. Com a prática, a escolha da estrutura mais adequada para cada situação se torna natural, resultando em código mais limpo, eficiente e fácil de manter.
0 Comentários