3
respostas

Duvida sobre funções - aula 8

No curso vcs passaram o seguinte exemplo de Arrow function:

//Arrow function com + de 1 linha de instrução
const somaNumPequenos = (n1, n2) => {
    if (n1 || n2 > 10){
         return "somente números 1 a 9"
    }else{
         return n1 + n2;
    }
}


console.log(somaNumPequenos(1,4)) <===============
SAIDA: "somente números 1 a 9"

MINHA DUVIDA: Quando coloquei para exibir na tela as condições , independente se o nr é menor ou não que 10 ele sempre cai na primeira condição exibindo na tela a resposta de retorno: "somente números 1 a 9"

Assim queria saber se esta forma esta correta mesmo

3 respostas

No programa eles esqueceram de colocar "n1 > 10" na hora de aplicar o if aparentement. Testa ele assim agora:

//Arrow function com + de 1 linha de instrução const somaNumPequenos = (n1, n2) => { if (n1 > 10 || n2 > 10){ return "somente números 1 a 9" }else{ return n1 + n2; } }

Note que coloquei " > 10" antes do "ou( || )"

Foi realmente isso q aconteceu, corrigi aqui e funcionou.

Entendi que ao o colocar o n1 sem o operador (nesse caso o maior ">") basta que ele seja passado para dar true, sendo assim true ou qualquer coisa dá true, caindo sempre no primeiro if.

Oi oi, Karina, Filipe e Ronaldo! Tudo bem com vocês?

Obrigada pela observação e parabéns pelo olhar atento aos detalhes, resolver bugs é característica super importante ao desenvolvedor!

Como vocês puderam notar, faltou inserir um operador de comparação para fazer a verificação de toda a condição. Vocês podem dar uma olhada na documentação do MDN pois há diferentes formas de combinar operadores dentro de uma única condição. Vou deixar o link aqui: Link para documentação MDN sobre estruturas condicionais

No mais, vocês estão corretos, o código corrigido ficará assim:

const somaNumerosPequenos = (num1, num2) => {
  if (num1 > 10 || num2 > 10) { //bem aqui no primeiro parâmetro o valor precisará de um operador de comparação
    return "somente números de 1 a 9"
  } else {
    return num1 + num2;
  }
}

console.log(somaNumerosPequenos(9,9)) // saída 18
console.log(somaNumerosPequenos(9,12))// saída "somente números de 1 a 9"

Ah, muito obrigada pela notificação e saibam que vamos corrigir o código :)

Continuem com esse foco e contribuindo para o crescimento da comunidade!

Obrigada novamente!

Um abraço e bons estudos!