Questão nº 57

Questão de Tecnologia da Informação · FGV MPMS 2012 (nº 57)

FGV2012Técnico I - InformáticaTecnologia da Informação
Gabarito: Dver comentário ↓

Considere o seguinte comando condicional escrito em Java e também em Python:

if (p == false) {
return false;
}elseif (q == false) {
return false;
}else {
returntrue;
}

if p == False:
return False
elif q == False:
return False
else:
return True

Este comando pode ser escrito de forma mais simples como (as opções são apresentadas em Java e Python):

Resposta comentada

Gabarito Alternativa D

O comando original só retorna true quando ambas as condições p e q são verdadeiras. Em qualquer outro caso (p falso ou q falso), retorna false. Isso é exatamente a definição do operador lógico E (&& em Java, and em Python), que só é verdadeiro quando todos os operandos são verdadeiros.

  • (A) Incorreta: p && !q retorna true apenas quando p é verdadeiro e q é falso, o que não corresponde ao comportamento original (que exige ambos verdadeiros).
  • (B) Incorreta: !(p || q) é a negação do "OU", ou seja, só é true quando ambos são falsos — o oposto do que o código original faz.
  • (C) Incorreta: p || q retorna true se pelo menos um for verdadeiro, mas o original exige os dois verdadeiros.
  • (D) Correta: q && p (ou q and p) é a forma mais simples e direta: retorna true somente quando p e q são ambos verdadeiros, exatamente como o if/elseif/else original. A ordem dos operandos não altera o resultado do "E" lógico.
  • (E) Incorreta: !q || !p é a negação do "E" (Lei de De Morgan), retornando true sempre que pelo menos um for falso — o contrário do que queremos.

Fonte: FGV MPMS 2012 Técnico I - Informática. Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho