Da trilha de C++ Este conceito ainda não saiu como card do dia. ir para o card de hoje

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

  • if com inicializador declara uma variável usada apenas dentro do bloco condicional, evitando poluição do escopo.
  • switch compara um valor com múltiplos casos e exige break para evitar queda entre casos.
  • for tradicional usa três partes: inicialização, condição e incremento.
  • range-for percorre elementos de um contêiner sem índices, com sintaxe for (declaração : contêiner).
  • while executa o bloco enquanto a condição for verdadeira, podendo ser usado quando o número de iterações é desconhecido.
controle_fluxo.cpp
#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;
}

Exercícios

  1. 1
    Fácil

    Classificação com if

    Escreva um programa que leia um número inteiro e informe se ele é positivo, negativo ou zero. Use if com inicializador para declarar a variável dentro da condição.

    Resolver
  2. 2
    Médio

    Menu com switch e repetição

    Implemente um menu que exibe opções e lê a escolha do usuário até que ele digite 0 para sair. Use while para repetir e switch para tratar cada opção. As opções são: 1 - Somar, 2 - Subtrair, 0 - Sair. Para as opções 1 e 2, leia dois números e mostre o resultado. Para opção inválida, mostre Opção inválida.

    Resolver
  3. 3
    Desafio

    Processamento de notas com range-for

    Leia uma sequência de notas (números reais) até que seja digitado -1. Armazene-as em um std::vector<double>. Depois, use range-for para calcular a média das notas válidas (ignorando o -1) e imprimir quantas notas estão acima da média. A saída deve ser: Média: X.XX e Acima da média: N.

    Resolver

Continue estudando