[iniciante helpppp] Exercicio Java lógica de programação

[Leve em conta que estou bem no começo, então os exercícios não usam ainda métodos complexos, no máximo um arr.push()]
Preciso criar uma função que recebe 3 parâmetros. Os dois primeiros delimitam um intervalo. A função deve retornar um array contendo os menores números pares dentro do intervalo. A quantidade de elementos nesse array deve ser igual ao 3o parâmetro passado.

** Obs¹: O 1o parâmetro sempre será menor que o 2o parâmetro
** Obs²: No intervalo passado sempre haverá números pares suficientes para a quantidade passada
** Obs³: A função deve retornar os menores números pares possíveis dentro do intervalo

Exemplo: se for passado os valores “2”, “10”, “3”, a função deve retornar o array [4,6,8]

Exemplo: se for passado os valores “2”, “10”, “2”, a função deve retornar o array [4,6]

Criei o seguinte código:

function intervaloPares(inicio, fim, quantidade) {
    let qtdePares = [];
    
    for (let i = inicio; i < fim; i ++) {
        if (i % 2 == 0 && qtdePares.length <= quantidade) {
            qtdePares.push(i);
        } 
            
    return qtdePares;
    
    }
}

Porém, supondo que eu chame a função com os parâmetros (2, 10, 3), ele está me retornando [2], e na verdade deveria estar retornando [4, 6, 8]. Parece que o meu “for” não está passando pela iteração e somando 1 ao valor de “i”, até que “i” se torne maior que a quantidade (3º parâmetro) e então saia do laço. Enquanto isso, quando minha condição do resto da divisão for igual a zero, ele adiciona o elemento no array que criei vazio. Faz sentido o que eu pensei ?

Alguem consegue me ajudar ? >.<

Obrigado.

return qtdePares;

está dentro do FOR, só jogar ele pra fora que funciona.

1 curtida

Boaa mano!!! Verdade…

valeu pelo toque

1 curtida