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;
}
}