💻 Exemplos de Código: Cap 07 - Laço for, break/continue e Big-O
Código executável completo demonstrando laços for determinísticos, controle de fluxo com break e continue, laços 2D aninhados e medição empírica de complexidade.
📄 Exemplo 1: Filtragem e Interrupção com break e continue (saltos_fluxo.c)
#include <stdio.h>
int main(void) {
printf("====================================================\n");
printf(" 🔄 DEMONSTRACAO DE BREAK E CONTINUE NO LACO FOR\n");
printf("====================================================\n");
printf("Numeros impares de 1 a 20 (parando se encontrar 15):\n");
for (int i = 1; i <= 20; i++) {
// 1. Ignora números pares (salta para o próximo i++)
if (i % 2 == 0) {
continue;
}
// 2. Interrompe o laço prematuramente
if (i == 15) {
printf("\n>> [BREAK]: Encontrado numero 15! Encerrando laço.\n");
break;
}
printf("%02d ", i);
}
printf("====================================================\n");
return 0;
}
📄 Exemplo 2: Matriz 2D e Medição de Complexidade $O(N^2)$ (matriz_complexidade.c)
#include <stdio.h>
#include <stdint.h>
int main(void) {
const int N = 5;
uint64_t totalOperacoes = 0;
printf("====================================================\n");
printf(" 🔲 RENDERIZACAO DE TABELA MATRICIAL 2D (N = %d)\n", N);
printf("====================================================\n");
// Dois laços aninhados: O(N²)
for (int lin = 0; lin < N; lin++) {
for (int col = 0; col < N; col++) {
totalOperacoes++;
if (lin == col) {
printf("[ X ] "); // Diagonal Principal
} else if (lin + col == N - 1) {
printf("[ S ] "); // Diagonal Secundária
} else {
printf("[ . ] ");
}
}
printf("\n");
}
printf("----------------------------------------------------\n");
printf(" Dimensao da Matriz: %d x %d\n", N, N);
printf(" Operacoes Executadas: %llu iterações (O(N^2))\n", totalOperacoes);
printf("====================================================\n");
return 0;
}