A função "for" funciona sem o incremento? tipo: for(var (linha = 1; linha <= 3; linha++) ela funcionaria sem o "linha++"?
A função "for" funciona sem o incremento? tipo: for(var (linha = 1; linha <= 3; linha++) ela funcionaria sem o "linha++"?
Primeiro, queria falar sobre um conceito fundamental: for
é uma instrução, uma palavra reservada da linguagem, e não uma função. É fundamental você ter total domínio sobre o conceito de função e método.
Vamos lá. Primeiro, vamos corrigir o seu for
. Uma construção tradicional seria assim:
for (var i = 1; i < 4; i++) {
...
}
O Javascript funciona sem o terceiro parâmetro. Ficaria assim:
for (var i = 1; i < 4; ) {
...
}
Note que é necessária a presença do ;
. A princípio, este laço funcionaria para sempre (ou até o navegador reclamar). Porém, dentro do laço, nada impede que você altere o valor da variável. Assim:
for (var i = 1; i < 4; ) {
i = 10;
}
Esse loop, apesar de não haver nada no terceiro parâmetro do for
, altera o valor de i
, fazendo com que a condição de fim de laço seja satisfeita e o laço só itere uma vez.
É bom frisar que qualquer coisa pode ser colocada nos parâmetros do for
, desde que faça sentido. Por exemplo:
for (var i = 1, j = 10; i < 11; i++, j--) {
console.log(i,j);
}
Esta é uma construção perfeitamente válida, onde os elementos separados por vírgulas são todos avaliados a cada iteração.