← Questões de Programação

Programação · CONSULPLAN · 2022

Questão comentada de Programação

Em JavaScript, os operadores lógicos efetuam álgebra booleana e são frequentemente usados em conjunto com os operadores relacionais para combinar duas expressões relacionais em outra mais complexa. Considerando o uso de operadores, em relação ao código a seguir, assinale a afirmativa correta. if ( x == y ) stop () ; ( x == y ) && stop () ;

Gabarito: B

Em JavaScript, o operador lógico && faz o famoso "curto-circuito": ele avalia a expressão da esquerda e, se ela for verdadeira, então avalia a da direita. Por isso, quando você escreve (x == y) && stop(), está dizendo, na prática, a mesma coisa que "se x for igual a y, execute stop()". Na linha 1, o if também faz exatamente isso: testa a condição e, se ela for verdadeira, executa stop(). Já na linha 2, o && aparece como uma forma mais enxuta de escrever o mesmo comportamento. Isso é comum em JavaScript e aparece muito em códigos compactos. Repare que o operador == está sendo usado corretamente para comparação, não para atribuição. E o && não está "invertido" nem limitado ao lado esquerdo: ele pode sim avaliar o lado direito, mas só depois que o lado esquerdo permitir. É aí que mora a lógica do curto-circuito. Então, o gabarito B está correto porque as duas linhas produzem o mesmo efeito prático: se x == y, a função stop() é chamada; se não, nada acontece. Em provas, a banca gosta muito de testar essa equivalência entre if e expressões lógicas curtas.

Continue treinando

Questões relacionadas