Questão nº 52
Questão de Desenvolvimento de Software · FCC TJ-CE 2022 (nº 52)
Considere o bloco de código abaixo, presente em uma página HTML.
```
<body>
<script>
var a = 2;
var b = 3;
if (a!=b)
document.write("M1");
else
{
document.write("M2");
}
</script>
</body>
```
Ao carregar essa página em um navegador web,
- Aocorrerá um erro, pois `document.write("M2");` não deve estar entre chaves.
- Bserá exibido o valor M2.
- Cocorrerá um erro decorrente do uso de `!` na comparação `a!=b`.
- Docorrerá um erro, pois `document.write("M1");` deve estar entre chaves.
- Eserá exibido o valor M1. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
O conceito-chave aqui é como as estruturas condicionais (como o `if/else`) funcionam em JavaScript, especialmente quando se trata de blocos de código (delimitados por chaves `{}`) versus instruções únicas. Se um `if` ou `else` controla apenas uma única instrução, as chaves são opcionais; se controla múltiplas instruções, elas são obrigatórias.
(A) Incorreta: O uso de chaves `{}` para delimitar o bloco `else` é sintaticamente correto e, na verdade, é uma boa prática, mesmo que contenha apenas uma instrução. Não causa erro.
(B) Incorreta: O valor M2 seria exibido apenas se a condição `a != b` fosse falsa. Como `2 != 3` é verdadeiro, o bloco `else` não é executado.
(C) Incorreta: O operador `!=` (diferente de) é um operador de comparação válido e comum em JavaScript. Não causa erro.
(D) Incorreta: Armadilha da banca! Em JavaScript, se uma instrução `if` ou `else` controla apenas uma única linha de código (como `document.write("M1");`), as chaves `{}` são opcionais. A ausência delas não causa erro e o código é perfeitamente válido. Muitos programadores iniciantes pensam que as chaves são sempre obrigatórias, mas não são para instruções únicas.
(E) Correta: A variável `a` tem o valor 2 e `b` tem o valor 3. A condição `a != b` (2 é diferente de 3) é verdadeira. Quando a condição `if` é verdadeira, a instrução imediatamente após o `if` é executada. Neste caso, é `document.write("M1");`, que exibirá "M1" na página. O bloco `else` é ignorado.
Fonte: FCC TJ-CE 2022 Analista Judiciário - Especialidade Ciência da Computação - Área Infraestrutura de TI (Caderno Tipo 004). Reproduzida para fins de estudo.