Conforme expõem Forbellone e Eberspächer (2022), os operadores lógicos em C – como o operador && – seguem a regra de avaliação de curto-circuito. Suponha que um sistema de segurança verifica um código de acesso e, simultaneamente, tenta registrar a tentativa através de um incremento na mesma linha: if (codigo == 0 && tentativas++ > 0) Analise a relação entre as asserções: Caso a variável codigo tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento. PORQUE II. A linguagem C interrompe a avaliação da expressão se o lado esquerdo de um operador && for falso, ignorando quaisquer efeitos colaterais (como incrementos) do lado direito.
Conforme expõem Forbellone e Eberspächer (2022), os operadores lógicos em C – como o operador && – seguem a regra de avaliação de curto-circuito. Suponha que um sistema de segurança verifica um código de acesso e, simultaneamente, tenta registrar a tentativa através de um incremento na mesma linha:
if (codigo == 0 && tentativas++ > 0)
Analise a relação entre as asserções:
I. Caso a variável codigo tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento.
PORQUE
II. A linguagem C interrompe a avaliação da expressão se o lado esquerdo de um operador && for falso, ignorando quaisquer efeitos colaterais (como incrementos) do lado direito.
- As duas asserções são verdadeiras, e a segunda é uma justificativa correta da primeira.
- As duas asserções são verdadeiras, mas a segunda não justifica a primeira.
- A primeira é verdadeira, e a segunda é falsa.
- A primeira é falsa, e a segunda é verdadeira.
- Ambas as asserções são falsas.