Estruturas de Controle, Loops e Entrada/Saída de dados em C


Olá, pessoal! Hoje vamos mergulhar nos fundamentos da programação em C, explorando como:

  • Tomar decisões com estruturas condicionais
  • Repetir tarefas com loops
  • Interagir com usuários através de entrada e saída de dados

Vamos começar do básico e evoluir para exemplos práticos!


🧩 1. Estruturas Condicionais

1.1 If, Else If, Else

Permitem executar código baseado em condições.

#include <stdio.h>

int main() {
    int idade;

    printf("Digite sua idade: ");
    scanf("%d", &idade);

    if (idade < 0) {
        printf("Idade inválida!\n");
    } else if (idade < 18) {
        printf("Você é menor de idade.\n");
    } else if (idade < 65) {
        printf("Você é adulto.\n");
    } else {
        printf("Você é idoso.\n");
    }

    return 0;
}

1.2 Switch Case

Ideal para múltiplas condições baseadas em um único valor.

#include <stdio.h>

int main() {
    int opcao;

    printf("Menu:\n");
    printf("1 - Café\n");
    printf("2 - Chá\n");
    printf("3 - Suco\n");
    printf("Escolha uma opção: ");
    scanf("%d", &opcao);

    switch (opcao) {
        case 1:
            printf("Preparando café...\n");
            break;
        case 2:
            printf("Preparando chá...\n");
            break;
        case 3:
            printf("Preparando suco...\n");
            break;
        default:
            printf("Opção inválida!\n");
    }

    return 0;
}

🔄 2. Estruturas de Repetição (Loops)

2.1 For Loop

Ideal quando sabemos quantas vezes repetir.

#include <stdio.h>

int main() {
    int i, numero, soma = 0;

    printf("Digite 5 números para somar:\n");

    for (i = 1; i <= 5; i++) {
        printf("Número %d: ", i);
        scanf("%d", &numero);
        soma += numero;
    }

    printf("Soma total: %d\n", soma);
    printf("Média: %.2f\n", soma / 5.0);

    return 0;
}

2.2 While Loop

Repete enquanto a condição for verdadeira.

#include <stdio.h>

int main() {
    int senha, tentativas = 0;
    const int SENHA_CORRETA = 1234;

    while (tentativas < 3) {
        printf("Digite a senha (%d tentativa(s) restante(s)): ", 3 - tentativas);
        scanf("%d", &senha);

        if (senha == SENHA_CORRETA) {
            printf("Acesso permitido!\n");
            break;
        } else {
            printf("Senha incorreta!\n");
            tentativas++;
        }
    }

    if (tentativas == 3) {
        printf("Conta bloqueada!\n");
    }

    return 0;
}

2.3 Do-While Loop

Garante que o código execute pelo menos uma vez.

#include <stdio.h>

int main() {
    char continuar;
    int numero, quadrado;

    do {
        printf("Digite um número: ");
        scanf("%d", &numero);

        quadrado = numero * numero;
        printf("O quadrado de %d é %d\n", numero, quadrado);

        printf("Deseja calcular outro? (s/n): ");
        scanf(" %c", &continuar); // Espaço antes do %c é importante!

    } while (continuar == 's' || continuar == 'S');

    printf("Programa encerrado.\n");
    return 0;
}

📥📤 3. Entrada e Saída de Dados

3.1 printf() – Saída Formatada

#include <stdio.h>

int main() {
    int idade = 25;
    float altura = 1.75;
    char nome[] = "Maria";
    char letra = 'A';

    printf("=== Dados Pessoais ===\n");
    printf("Nome: %s\n", nome);
    printf("Idade: %d anos\n", idade);
    printf("Altura: %.2f metros\n", altura);
    printf("Letra inicial: %c\n", letra);

    // Operações dentro do printf
    printf("Daqui 5 anos: %d anos\n", idade + 5);

    return 0;
}

3.2 scanf() – Entrada de Dados

#include <stdio.h>

int main() {
    char nome[50];
    int idade;
    float salario;

    printf("=== Cadastro de Usuário ===\n");

    printf("Digite seu nome: ");
    scanf("%s", nome);

    printf("Digite sua idade: ");
    scanf("%d", &idade);

    printf("Digite seu salário: R$ ");
    scanf("%f", &salario);

    printf("\n=== Dados Cadastrados ===\n");
    printf("Nome: %s\n", nome);
    printf("Idade: %d anos\n", idade);
    printf("Salário: R$ %.2f\n", salario);

    return 0;
}

🎯 4. Exemplo Integrado Completo

#include <stdio.h>

int main() {
    int opcao;
    float num1, num2, resultado;

    do {
        printf("\n=== CALCULADORA SIMPLES ===\n");
        printf("1 - Soma\n");
        printf("2 - Subtração\n");
        printf("3 - Multiplicação\n");
        printf("4 - Divisão\n");
        printf("5 - Sair\n");
        printf("Escolha uma opção: ");
        scanf("%d", &opcao);

        if (opcao >= 1 && opcao <= 4) {
            printf("Digite o primeiro número: ");
            scanf("%f", &num1);
            printf("Digite o segundo número: ");
            scanf("%f", &num2);
        }

        switch (opcao) {
            case 1:
                resultado = num1 + num2;
                printf("Resultado: %.2f + %.2f = %.2f\n", num1, num2, resultado);
                break;
            case 2:
                resultado = num1 - num2;
                printf("Resultado: %.2f - %.2f = %.2f\n", num1, num2, resultado);
                break;
            case 3:
                resultado = num1 * num2;
                printf("Resultado: %.2f × %.2f = %.2f\n", num1, num2, resultado);
                break;
            case 4:
                if (num2 != 0) {
                    resultado = num1 / num2;
                    printf("Resultado: %.2f ÷ %.2f = %.2f\n", num1, num2, resultado);
                } else {
                    printf("Erro: Divisão por zero!\n");
                }
                break;
            case 5:
                printf("Encerrando calculadora...\n");
                break;
            default:
                printf("Opção inválida!\n");
        }

    } while (opcao != 5);

    return 0;
}

💡 5. Dicas Importantes

Erros Comuns a Evitar:

// ERRADO: esquecer o &
scanf("%d", idade);

// CORRETO:
scanf("%d", &idade);

// ERRADO: esquecer break no switch
case 1:
    printf("Opção 1");
    // Falta break!

// CORRETO:
case 1:
    printf("Opção 1");
    break;

Boas Práticas:

  • Sempre inicialize variáveis
  • Use nomes descritivos (idade, salario, etc.)
  • Comente seu código para explicar lógica complexa
  • Teste com diferentes valores de entrada

🏆 6. Exercícios Práticos

Exercício 1: Tabuada

// Desafio: Peça um número e mostre sua tabuada de 1 a 10

Exercício 2: Adivinhação

// Desafio: Gere um número aleatório e peça ao usuário para adivinhar

Exercício 3: Contador de Vogais

// Desafio: Peça uma palavra e conte quantas vogais ela tem

📌 Resumo do que Aprendemos:

Estruturas condicionais: if, else if, else, switch
Loops: for, while, do-while
Entrada/Saída: printf(), scanf()
Integração: Como combinar todos os conceitos


🚀 Próxima Aula: FUNÇÕES em C!

Aprenderemos a organizar nosso código em blocos reutilizáveis!

😊
Comentem suas dúvidas e compartilhem seus códigos!


💻 Dica Extra: Pratique modificando os exemplos acima. Tente adicionar novas funcionalidades ou criar seus próprios programas!


Descubra mais sobre Apprendendo

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue lendo