Aula 02 - Entrada de Dados e Estruturas Condicionais em C: scanf, if, if…else, else if e switch
Material organizado para estudo progressivo, com leitura confortável, recursos complementares e navegação para a próxima etapa da disciplina.
Resumo
Esta aula dá ao programa a capacidade de ouvir o usuário e escolher caminhos, em vez de sempre fazer a mesma coisa. Começa pela entrada de dados com a função scanf, o operador & (endereço da variável) e a leitura de inteiros, reais e caracteres, formando o par ler↔escrever com o printf. Em seguida apresenta as estruturas condicionais: o if simples, que executa um bloco apenas quando a condição booleana é verdadeira; o if…else, com seus dois caminhos; e o else if encadeado, para classificar valores em faixas (ex.: dano fraco, médio ou forte). Retoma os operadores lógicos (&&, ||, !) agora dentro das condições, permitindo exigir várias exigências ao mesmo tempo, e introduz a seleção múltipla com switch/case, break e default, ideal para menus de opções fixas. A aula encerra destacando as armadilhas clássicas — confundir = (atribuição) com == (comparação), esquecer o break no switch (fall-through) e comparar float com == — reforçadas por quiz e atividade prática de rastrear um if aninhado. Ela conecta-se à Aula 01, pois as variáveis, tipos, operadores e booleanos vistos antes passam agora a controlar o fluxo do programa; e prepara o terreno para a Aula 03, sobre estruturas de repetição.
Algoritmos e Programação24/08/2026Aula interativa importada
Leitura pensada para estudo, consulta e revisão. Use a navegação lateral para alternar entre etapas da aula.
Estudo
Conteúdo interativo — HTML importado
Aula 02 - Entrada de Dados e Estruturas Condicionais em C: scanf, if, if…else, else if e switch
Abra o material em tela cheia para estudar com conforto, sem sair da disciplina.
Aula 02 - Entrada de Dados e Estruturas Condicionais em C: scanf, if, if…else, else if e switch
100%
Carregando conteúdo interativo...
A Jornada do Código — Aula 02: Entrada e Decisões 🧭 Aula 02 · Interativa A Jornada do Código — Entrada & Decisões ◀ 1 / 12 ▶ – 100% + ⛶ FASE 00 · Capa XP $ 0 ✦ Aula 02 · o herói agora escolhe Bifurcações do Código Na Aula 01 o herói seguia um caminho fixo. Agora ele ouve o jogador e toma decisões: cada condição abre uma porta diferente no mapa. 🎯 6 temas ⏱️ ~40 min 📜 Pré-requisito: Aula 01 🧪 Simuladores + Quiz Use ◀ ▶ ou as setas ← → para avançar · ⛶ tela cheia Retomando a jornada Do caminho fixo às escolhas Um programa que sempre faz a mesma coisa é como um herói que só anda em linha reta. O poder de verdade aparece quando ele reage: pergunta algo ao jogador e escolhe o que fazer com a resposta. O salto desta aula ✗ Sem decisão — sempre igual O programa imprime "Bem-vindo" e acaba. Não importa quem joga: o resultado é sempre o mesmo. ✓ Com decisão — reage ao jogador Ele lê a vida do herói e decide: if vivo → continua a aventura; senão → game over. ⌨️ Entrada Com scanf o programa passa a ouvir o usuário. 🔀 Decisão if, else e switch escolhem o caminho. 🧠 Lógica viva Os booleanos da Aula 01 agora controlam o fluxo. Tema 1 de 6 Ouvindo o jogador: scanf() Se o printf fala com o usuário, o scanf escuta. Ele lê o que a pessoa digita e guarda numa variável. Repare no & antes do nome — ele diz ao scanf onde na memória guardar o valor. entrada.c📋 copiar #include <stdio.h> int main() { int vida; printf("Digite os pontos de vida: "); scanf("%d", &vida); // lê e guarda em "vida" printf("Vida registrada: %d\n", vida); return 0; } 1 "%d" avisa o scanf que vai chegar um inteiro (use %f para real, %c para caractere). 2 &vida é o endereço da variável — o "quarto" onde o valor será guardado. 3 O par ler ↔ escrever: peço com scanf, mostro de volta com printf. ⌨️ Simulador Ler do teclado Digite os pontos de vida: ▶ Executar ↺ Reset // digite um valor e clique em Executar Tema 2 de 6 A primeira bifurcação: if O if testa uma condição booleana. Se ela for verdadeira, o bloco entre chaves executa. Se for falsa, o programa simplesmente pula esse trecho. Como o if decide INÍCIO → chave == 1234 ? SIM ↓→ Portão abre 🔓 NÃO → nada acontece, o programa segue em frente. portao.c📋 copiar int chave; scanf("%d", &chave); if (chave == 1234) { // condição booleana printf("Portao aberto!\n"); // só roda se for verdadeira } 🔑 Simulador Verificador de chave Código mágico (o certo é 1234): ▶ Testar ↺ Reset // digite o código e teste o if Tema 3 de 6 Os dois caminhos: if / else O else cobre o "caso contrário". Agora a bifurcação tem sempre uma saída: um caminho para verdadeiro, outro para falso. Um deles sempre executa. vida > 0 ? SIM→ Herói vivo! ⚔️ NÃO→ Game over 💀 status.c📋 copiar if (vida > 0) { printf("O heroi continua vivo!\n"); } else { printf("Game over...\n"); } 🧠 Regra de ouro Num if/else, exatamente um dos dois blocos executa — nunca os dois, nunca nenhum. Tema 4 de 6 Várias faixas: else if Quando há mais de dois casos — como classificar o dano em fraco, médio ou forte — encadeamos else if. O programa testa de cima para baixo e para na primeira condição verdadeira. classificar.c📋 copiar if (dano < 20) { printf("Dano fraco\n"); } else if (dano < 60) { printf("Dano medio\n"); } else { printf("Dano forte!\n"); } 📊 Simulador Classificador de dano int dano = − 35 + ▶ Classificar // ajuste o dano (0–100) e classifique Tema 5 de 6 Combinando testes: && || ! Os operadores lógicos da Aula 01 agora moram dentro do if. Com && (E), || (OU) e ! (NÃO) você exige várias condições de uma vez. passagem.c📋 copiar // só passa se tem a chave E a porta NÃO está trancada if (tem_chave && !porta_trancada) { printf("Pode passar!\n"); } else { printf("Caminho bloqueado.\n"); } 🚪 Simulador Condição dentro do if tem_chave true && ! porta_trancada false → if verdadeiro ✓ Pode passar! Clique nos interruptores e veja qual bloco do if/else executa. Tema 6 de 6 O menu de batalha: switch / case Quando há muitas opções fixas — como um menu numerado — o switch é mais limpo que vários if. Cada case é uma opção; o break encerra; o default cobre o inesperado. menu.c📋 copiar switch (opcao) { case 1: printf("Voce ataca!\n"); break; case 2: printf("Voce defende!\n"); break; case 3: printf("Voce foge!\n"); break; default: printf("Opcao invalida\n"); } ⚔️ Simulador Menu de batalha 1 · Atacar 2 · Defender 3 · Fugir 9 · (inválida) // escolha uma opção do menu Perigos do caminho Armadilhas das decisões Três ciladas derrubam quase todo aprendiz. Reconhecê-las agora poupa horas de caça a bugs depois. 💥 1. Usar = no lugar de == if (vida = 0) atribui 0 a vida e testa esse resultado — quase nunca é o que você quer. O certo é if (vida == 0), que compara. 🕳️ 2. Esquecer o break no switch Sem break, o programa "escorrega" e executa também os case seguintes (efeito fall-through). Um case 1 sem break acaba rodando o case 2 junto. 🌫️ 3. Comparar float com == Números reais têm imprecisão. if (media == 7.0) pode falhar por causa de casas decimais escondidas. Prefira comparar por faixa (>=, <=). Batalha de conhecimento Escolha com sabedoria Ganhe XP a cada acerto. A explicação aparece na hora — errar aqui também é aprender. Missão especial Rastreie o if aninhado Um if dentro de outro. Siga a lógica de cabeça, decida qual mensagem aparece e só então revele a resposta. desafio.c📋 copiar int vida = 30; int pocoes = 2; if (vida < 50) { // (1) 30 < 50 ? if (pocoes > 0) { // (2) 2 > 0 ? printf("Use uma pocao!\n"); } else { printf("Sem pocoes, cuidado!\n"); } } else { printf("Vida OK\n"); } 🔓 Revelar resposta $ ./desafio Use uma pocao! 1 vida < 50 → 30 < 50 é verdadeiro, então entramos no primeiro bloco. 2 Dentro dele, pocoes > 0 → 2 > 0 também é verdadeiro → imprime "Use uma pocao!". O else externo nunca é alcançado. 🏆 Missão completa! O herói aprendeu a ouvir o jogador e a escolher caminhos. Agora seus programas reagem em vez de repetir sempre a mesma coisa. ⌨️ scanf & entradaLê do teclado com "%d", "%f", "%c" e o & da variável. 🔀 if / elseUm caminho para verdadeiro, outro para falso. 📊 else ifVárias faixas; para na primeira condição verdadeira. 🔗 && || !Combinam condições dentro do if. ⚔️ switch / caseMenu limpo de opções fixas; não esqueça o break. 💥 Armadilhas= ≠ ==, break no switch, float com ==. Quando usar cada estrutura de decisão Situação Use Exemplo fazer algo só se… if abrir portão se chave certa dois caminhos if / else vivo ou game over várias faixas de valor else if dano fraco/médio/forte combinar condições && || ! tem chave E porta aberta menu de opções fixas switch 1-atacar 2-defender 3-fugir ➡️ Próxima fase Na Aula 03, o herói aprende a repetir ações: laços while, do-while e for — para não escrever o mesmo comando cem vezes. Prof. Evandro Júnior · 2025 · A Jornada do Código — Aula 02: Entrada & Decisões ✨+10 XP