C++ Controle de fluxo Básico
Controle de fluxo
O controle de fluxo permite que o programa tome decisões e repita tarefas. Em C++, as principais estruturas são if (com inicializador desde C++17), switch, for, range-for e while. Elas definem a ordem em que as instruções são executadas, de acordo com condições e iterações.
O if com inicializador permite declarar uma variável e usá-la na condição, mantendo o escopo restrito ao bloco. O switch seleciona um caminho entre vários casos baseados em um valor inteiro ou enum. O for tradicional dá controle total sobre a iteração, enquanto o range-for percorre contêineres de forma simples e segura. O while repete enquanto uma condição for verdadeira.
Dominar essas estruturas é essencial para escrever algoritmos que reagem a diferentes entradas e processam dados repetidamente.
Pontos-chave
ifcom inicializador declara uma variável usada apenas dentro do bloco condicional, evitando poluição do escopo.switchcompara um valor com múltiplos casos e exigebreakpara evitar queda entre casos.fortradicional usa três partes: inicialização, condição e incremento.range-forpercorre elementos de um contêiner sem índices, com sintaxefor (declaração : contêiner).whileexecuta o bloco enquanto a condição for verdadeira, podendo ser usado quando o número de iterações é desconhecido.
#include <iostream>
#include <vector>
#include <string>
int main() {
// if com inicializador (C++17)
if (int x = 10; x > 5) {
std::cout << "x é maior que 5\n";
}
// switch
int opcao = 2;
switch (opcao) {
case 1:
std::cout << "Opção 1\n";
break;
case 2:
std::cout << "Opção 2\n";
break;
default:
std::cout << "Opção inválida\n";
}
// for tradicional
std::cout << "for: ";
for (int i = 0; i < 3; ++i) {
std::cout << i << ' ';
}
std::cout << '\n';
// range-for
std::vector<std::string> nomes = {"Ana", "Bruno", "Carlos"};
std::cout << "range-for: ";
for (const auto& nome : nomes) {
std::cout << nome << ' ';
}
std::cout << '\n';
// while
int contador = 3;
std::cout << "while: ";
while (contador > 0) {
std::cout << contador << ' ';
--contador;
}
std::cout << '\n';
return 0;
}