Olá, Vitor. Como vai?
Parabéns pela resolução! Seu código utiliza de forma excelente as palavras-chave continue e break, que são fundamentais para o controle de fluxo dentro de laços de repetição em JavaScript.
Gostaria de destacar como a sua lógica foi bem aplicada:
- O uso do continue: Você o utilizou corretamente para "pular" as iterações onde a caixa é negativa (menor que zero). Isso evita que caixas danificadas entrem na contagem de processamento, sem interromper o loop por completo.
- O uso do break: Foi aplicado perfeitamente para interromper o processamento assim que o limite de 5 caixas válidas foi atingido, poupando recursos e encerrando a execução no momento exato.
- O laço for...of: É a escolha mais moderna e legível para percorrer arrays em JavaScript quando não precisamos manipular diretamente o índice do elemento.
Essa estrutura que você criou é muito comum em sistemas de logística reais, onde precisamos filtrar dados inconsistentes e respeitar limites de capacidade ou jornada de trabalho.
Uma pequena curiosidade técnica: o valor 0 no seu código foi processado como uma caixa válida (pois 0 < 0 é falso). Se na regra de negócio uma caixa com valor zero também devesse ser ignorada, bastaria ajustar a condição para if (caixa <= 0).
Continue com esse excelente desempenho nos exercícios de lógica!
Espero que possa ter lhe ajudado!