Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Ideia para o Exercício 4 (Maior e Menor número) - O problema do ZERO.

Olá a todos, eu percebi um problema com o código proposto na resolução do exercício 4 e tentei uma solução, adoraria ouvir a opinião de vocês.

Acontece que como o código está escrito originalmente, se seu Array não tiver nenhum numero menor que 0, o valor da variável 'menor' nunca muda, e o console retorna o menor número como 0 (zero, o valor atribuído por você mesmo a sua variável).

Para resolver esse problema, eu adicionei mais um 'if' ao loop do 'for', para modificar o valor da variável 'menor' para qualquer número do Array, caso ela seja igual a 0.

const numerosInt = [ 4, 5, 67, 12, 23, 3, 45, 67, 13, 90];
function maiorEMenor (arr) {
  let maiorInt = 0;
  let menorInt = 0;

  for (let i = 0; i < arr.length; i++) {
    if (arr[i]> maiorInt) {
      maiorInt = arr[i];
    }
    if (arr[i]< menorInt) {
      menorInt = arr[i];
    }
    if (menorInt === 0) {
      menorInt = arr[i]
    }
    }
    return `O maior número é ${maiorInt} e o menor é ${menorInt}`
  }

console.log(maiorEMenor(numerosInt));

Desta forma, a variável assume um valor existente na array e consegue ser comparado com os outros nas seguintes iterações do looping.

1 resposta
solução!

Olá Davi! Tudo bem?

Que bom que você está explorando diferentes abordagens para resolver o exercício! Sua observação sobre o problema do zero é muito válida. Quando inicializamos a variável menorInt com zero, ela pode não ser atualizada corretamente se todos os números do array forem maiores que zero.

Uma forma alternativa de resolver isso é inicializar menorInt com o primeiro elemento do array, em vez de zero. Isso garante que menorInt comece com um valor que realmente está no array. Veja como ficaria o código:

const numerosInt = [4, 5, 67, 12, 23, 3, 45, 67, 13, 90];

function maiorEMenor(arr) {
  let maiorInt = arr[0];
  let menorInt = arr[0];

  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > maiorInt) {
      maiorInt = arr[i];
    }
    if (arr[i] < menorInt) {
      menorInt = arr[i];
    }
  }
  return `O maior número é ${maiorInt} e o menor é ${menorInt}`;
}

console.log(maiorEMenor(numerosInt));

Neste exemplo, inicializamos maiorInt e menorInt com o primeiro elemento do array. Assim, começamos as comparações a partir do segundo elemento (índice 1). Isso elimina a necessidade de um if adicional para ajustar o valor de menorInt.

Bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!