86 lines
2.4 KiB
Markdown
86 lines
2.4 KiB
Markdown
|
---
|
|||
|
title: For Loop
|
|||
|
localeTitle: Para loop
|
|||
|
---
|
|||
|
### Sintaxe
|
|||
|
|
|||
|
```javascript
|
|||
|
for ([initialization]); [condition]; [final-expression]) {
|
|||
|
// statement
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
O javascript `for` instrução consiste em três expressões e uma declaração:
|
|||
|
|
|||
|
## Descrição
|
|||
|
|
|||
|
* Inicialização - Executar antes da primeira execução no loop. Esta expressão é comumente usada para criar contadores. As variáveis criadas aqui estão no escopo do loop. Uma vez terminado o loop, sua execução é destruída.
|
|||
|
* condição - Expressão que é verificada antes da execução de cada iteração. Se omitido, esta expressão é avaliada como verdadeira. Se for avaliado como true, a instrução do loop será executada. Se for avaliado como falso, o loop será interrompido.
|
|||
|
* expressão final - Expressão executada após cada iteração. Geralmente usado para incrementar um contador. Mas pode ser usado para diminuir um contador também.
|
|||
|
* statement - Código a ser repetido no loop
|
|||
|
|
|||
|
qualquer uma dessas três expressões ou a declaração pode ser omitida. For loops são comumente usados para contar um certo número de iterações para repetir uma instrução. Use uma instrução `break` para sair do loop antes que a expressão de condição seja avaliada como falsa.
|
|||
|
|
|||
|
## Armadilhas Comuns
|
|||
|
|
|||
|
**Ultrapassando os limites de um array**
|
|||
|
|
|||
|
Ao indexar em um array muitas vezes é fácil exceder os limites do array (ex. Tentar referenciar o 4º elemento de um array de 3 elementos).
|
|||
|
|
|||
|
```javascript
|
|||
|
// This will cause an error.
|
|||
|
// The bounds of the array will be exceeded.
|
|||
|
var arr = [ 1, 2, 3 ];
|
|||
|
for (var i = 0; i <= arr.length; i++) {
|
|||
|
console.log(arr[i]);
|
|||
|
}
|
|||
|
|
|||
|
output:
|
|||
|
1
|
|||
|
2
|
|||
|
3
|
|||
|
undefined
|
|||
|
```
|
|||
|
|
|||
|
Existem duas maneiras de corrigir este código. Defina a condição como `i < arr.length` ou `i <= arr.length - 1`
|
|||
|
|
|||
|
### Exemplos
|
|||
|
|
|||
|
Iterar entre inteiros de 0 a 8
|
|||
|
|
|||
|
```javascript
|
|||
|
for (var i = 0; i < 9; i++) {
|
|||
|
console.log(i);
|
|||
|
}
|
|||
|
|
|||
|
output:
|
|||
|
0
|
|||
|
1
|
|||
|
2
|
|||
|
3
|
|||
|
4
|
|||
|
5
|
|||
|
6
|
|||
|
7
|
|||
|
8
|
|||
|
```
|
|||
|
|
|||
|
Quebra de um loop antes que a expressão de condição seja falsa
|
|||
|
|
|||
|
```javascript
|
|||
|
for (var elephant = 1; elephant < 10; elephant+=2) {
|
|||
|
if (elephant === 7) {
|
|||
|
break;
|
|||
|
}
|
|||
|
console.info('elephant is ' + elephant);
|
|||
|
}
|
|||
|
|
|||
|
output:
|
|||
|
elephant is 1
|
|||
|
elephant is 3
|
|||
|
elephant is 5
|
|||
|
```
|
|||
|
|
|||
|
### Outros recursos
|
|||
|
|
|||
|
* [MDN - para declarações](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
|