C++ Control Structures

Uma Jornada Divertida pelo Controle de Fluxo

Nossa Aventura de Hoje

  • Operadores lógicos e de comparação
  • Declarações if-else: Escolhendo seu próprio caminho
  • Operador ternário: O atalho mágico
  • Loops: Girando como um DJ
  • Break e Continue: Pulando obstáculos

Operadores Lógicos e de Comparação

As ferramentas do detetive de código


// Operadores de comparação
==  // Igual a
!=  // Diferente de
<   // Menor que
>   // Maior que
<=  // Menor ou igual a
>=  // Maior ou igual a

// Operadores lógicos
&&  // E lógico
||  // OU lógico
!   // NÃO lógico
        

Operadores em Ação


int idade = 25;
bool temCarteira = true;

if (idade >= 18 && temCarteira) {
    cout << "Pode dirigir!";
} else if (idade >= 18 || temCarteira) {
    cout << "Quase lá, confira os requisitos!";
} else {
    cout << "Melhor pegar o ônibus!";
}
        

Declarações if-else

Escolhendo seu próprio caminho


int horasDeSono = 5;
if (horasDeSono < 6) {
    cout << "Mais café, por favor!";
} else if (horasDeSono < 8) {
    cout << "Estou bem, mas um café não faz mal.";
} else {
    cout << "Estou pronto para conquistar o mundo!";
}
        

Operador Ternário

O atalho mágico


int idade = 20;
string status = (idade >= 18) ? "Pode dirigir" : "Melhor pegar uma carona";
cout << status;
        

Estrutura switch-case

O menu de opções mágico


int opcao;
cout << "Escolha seu feitiço:\n";
cout << "1. Fireball\n2. Healing\n3. Invisibility\n";
cin >> opcao;

switch (opcao) {
    case 1:
        cout << "Você lança uma bola de fogo!";
        break;
    case 2:
        cout << "Você se cura completamente!";
        break;
    case 3:
        cout << "Você fica invisível!";
        break;
    default:
        cout << "Opção inválida. O feitiço falha!";
}
        

Loop for

Contagem regressiva para o lançamento


cout << "Preparar para lançamento!\n";
for (int i = 10; i > 0; i--) {
    cout << i << "... ";
    // Simula um atraso
    for(int j = 0; j < 100000000; j++) {}
}
cout << "Decolagem!";
        

Loop while

O contador de ovelhas


int ovelhas = 0;
bool estaDormindo = false;

while (!estaDormindo) {
    ovelhas++;
    cout << "Contando ovelha número " << ovelhas << "...\n";
    
    if (ovelhas >= 10) {
        estaDormindo = true;
        cout << "Zzzz... Finalmente dormiu!";
    }
}
        

Loop do-while

O jogo de adivinhação


int numeroSecreto = 42;
int palpite;
do {
    cout << "Adivinhe o número (entre 1 e 100): ";
    cin >> palpite;
    if (palpite < numeroSecreto) cout << "Muito baixo!\n";
    if (palpite > numeroSecreto) cout << "Muito alto!\n";
} while (palpite != numeroSecreto);
cout << "Parabéns! Você acertou!";
        

Instrução break

Encontrando o bug


int bugLinha = 42;
for (int linha = 1; linha <= 100; linha++) {
    cout << "Verificando linha " << linha << "...\n";
    if (linha == bugLinha) {
        cout << "Bug encontrado na linha " << linha << "!\n";
        break;
    }
}
        

Instrução continue

Pulando os números azarados


cout << "Contando de 1 a 20 (pulando números 'azarados'):\n";
for (int i = 1; i <= 20; i++) {
    if (i == 13 || i == 7) {
        continue;  // Pula os números 13 e 7
    }
    cout << i << " ";
}
        

Desafio Final

O Gerador de Piadas Ruins


int numPiadas = 3;
for (int i = 1; i <= numPiadas; i++) {
    string setup, punchline;
    if (i == 1) {
        setup = "Por que o programador ficou pobre?";
        punchline = "Porque ele usou todo seu cache!";
    } else if (i == 2) {
        setup = "Como um programador abre uma porta?";
        punchline = "Com uma chave de API!";
    } else {
        setup = "O que um programador faz quando está com fome?";
        punchline = "Ele C++!";
    }
    
    cout << setup << "\n";
    string resposta;
    cin >> resposta;
    if (resposta == "Não sei" || resposta == "Desisto") {
        cout << punchline << "\n\n";
    } else {
        cout << "Boa tentativa! A resposta era: " << punchline << endl;
    }
}