Files

2.4 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
587d7b7e367417b2b2512b21 Usar operadores de múltiplas condições (ternários) 1 https://scrimba.com/c/cyWJBT4 301179 use-multiple-conditional-ternary-operators

--description--

No desafio anterior, você usou um único operador condicional. Você também pode encadear eles juntos para verificar por múltiplas condições.

A seguinte função usa as instruções if, else if e else para verificar múltiplas condições:

function findGreaterOrEqual(a, b) {
  if (a === b) {
    return "a and b are equal";
  }
  else if (a > b) {
    return "a is greater";
  }
  else {
    return "b is greater";
  }
}

A função acima pode ser rescrita usando operadores de múltiplas condições (operador ternário):

function findGreaterOrEqual(a, b) {
  return (a === b) ? "a and b are equal" 
    : (a > b) ? "a is greater" 
    : "b is greater";
}

É considerada a melhor prática para formatar operadores de múltiplas condições, já que cada condição está em uma linha separada, como mostrado acima. Usar operadores de múltiplas condições sem a indentação adequada pode dificultar a leitura do seu código. Por exemplo:

function findGreaterOrEqual(a, b) {
  return (a === b) ? "a and b are equal" : (a > b) ? "a is greater" : "b is greater";
}

--instructions--

Na função checkSign, use operadores de múltiplas condições - seguindo o formato recomendado usado em findGreaterOrEqual - para verificar se um número é positivo, negativo ou zero. A função deve retornar positive, negative ou zero.

--hints--

checkSign deve usar operadores de múltiplas condições

assert(/.+?\s*?\?\s*?.+?\s*?:\s*?.+?\s*?\?\s*?.+?\s*?:\s*?.+?/gi.test(code));

checkSign(10) deve retornar a string positive. Observe que a capitalização importa

assert(checkSign(10) === 'positive');

checkSign(-12) deve retornar a string negative. Observe que a capitalização importa

assert(checkSign(-12) === 'negative');

checkSign(0) deve retornar a string zero. Observe que a capitalização importa

assert(checkSign(0) === 'zero');

--seed--

--seed-contents--

function checkSign(num) {

}

checkSign(10);

--solutions--

function checkSign(num) {
  return (num > 0) ? 'positive' : (num < 0) ? 'negative' : 'zero';
}