16. Controlando laços
Uma entrada, uma função, saída óbvia, corpo visível de uma vez e no máximo 3 níveis.
Resumo
- Tipos: contado (for), avaliado continuamente (while), infinito, iterador (foreach).
- Entre só por um lugar; inicialize logo antes do laço;
forsó quando o controle é simples. - Corpo: chaves sempre, sem laço vazio, controle no início ou no fim, uma função por laço.
- Saída: garanta que termina; condição óbvia; não mexa no índice do
for; não use o índice depois do laço. - Tamanho: cabe numa tela; aninhamento até 3 níveis; construa de dentro para fora.
Perguntas-chave
responda de cabeça, depois abraPor que não alterar o índice de um for dentro do corpo?
Porque quem lê espera que o for controle o índice sozinho; mudar no corpo cria saídas escondidas e bugs.
O que é um contador de segurança?
Uma variável que conta as iterações e interrompe o laço se passar de um limite, para evitar laços infinitos em código crítico.
Como construir um laço complicado?
De dentro para fora: escreva o caso de um elemento, depois envolva em laços e ajuste índices e inicializações.
Exercícios de fixação
0/5 respondidas1.
Dentro de um
for (i = 0; i < 100; i++), há if (achou) i = 100; para sair. O que o capítulo diz?2.
Depois de
for (i = 0; i < n; i++) {...}, o código usa i para saber onde parou. O problema é:3.
Um laço lê registros e também calcula o total e imprime o relatório. Melhor seria:
4.
Qual limite de aninhamento de laços o livro sugere?
5.
Qual laço é melhor para percorrer todos os itens de uma coleção sem precisar do índice?