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

2 respostas Resolvido
java
renanortegax

[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.

2 Respostas

ninjarafael
Solucao aceita
return qtdePares;

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

renanortegax

Boaa mano!!! Verdade…

valeu pelo toque

Criado 25 de outubro de 2022
Ultima resposta 25 de out. de 2022
Respostas 2
Participantes 2