/** * ============================================================================ * PHM Open Source — Curso de Lógica e Programação em C * Módulo 03: Estruturas de Repetição (while, for, do-while) * Autor: Prof. Paulo Henrique Maciel · PHM Tech * ============================================================================ * * OBJETIVO DIDÁTICO: * Praticar os três tipos de laços de repetição em C, controle com acumuladores, * contadores, break, continue e validação de entrada robusta com repetição. * * COMO COMPILAR E EXECUTAR: * gcc 03_lacos_e_contagem.c -o modulo03 && ./modulo03 * ============================================================================ */ #include int main(void) { int opcao; int numero; printf("====================================================\n"); printf(" PHM TECH — MODULO 03: ESTRUTURAS DE REPETICAO \n"); printf("====================================================\n\n"); // 1. LAÇO DO-WHILE: Ideal para menus interativos (executa ao menos 1 vez) do { printf("\n--- MENU DE DEMONSTRACOES DE LACOS ---\n"); printf("1. Tabuada de Multiplicacao (Uso do laço 'for')\n"); printf("2. Somatorio de 1 ate N (Uso do laço 'while')\n"); printf("3. Contagem Regressiva e Numeros Pares (Uso de 'continue')\n"); printf("0. Sair do programa\n"); printf("Escolha uma opcao: "); scanf("%d", &opcao); switch (opcao) { case 1: printf("\n[FOR] Digite um numero para ver a tabuada: "); scanf("%d", &numero); printf("Tabuada do %d:\n", numero); // Laço for: inicialização; condição; incremento for (int i = 1; i <= 10; i++) { printf(" %2d x %2d = %3d\n", numero, i, numero * i); } break; case 2: printf("\n[WHILE] Digite um numero limite N (> 0): "); scanf("%d", &numero); if (numero <= 0) { printf("Numero invalido. Deve ser maior que zero.\n"); } else { int soma = 0; int contador = 1; while (contador <= numero) { soma += contador; contador++; } printf("A soma de todos os inteiros de 1 ate %d e: %d\n", numero, soma); } break; case 3: printf("\n[FOR + CONTINUE] Numeros pares de 1 ate 20:\n"); for (int i = 1; i <= 20; i++) { if (i % 2 != 0) { continue; // Pula números ímpares sem encerrar o laço } printf("%d ", i); } printf("\n"); break; case 0: printf("\nEncerrando o modulo de repeticao. Ate logo!\n"); break; default: printf("\n[AVISO] Opcao invalida! Tente novamente.\n"); break; } } while (opcao != 0); return 0; }