Em um script de automação, dois contadores estão sendo util...
Em um script de automação, dois contadores estão sendo utilizados para rastrear tentativas de conexão e reconexão a um serviço. O primeiro contador(a) armazena o número de tentativas já realizadas, enquanto o segundo (b) contabiliza o número de falhas consecutivas. Analise o trecho a seguir:
#!/bin/bash
a=5
b=3
echo $((a++ + ++b))
Considerando o comportamento da aritmética em shell script com operadores de pré e pós-incremento, qual será a saída impressa pelo comando echo? Assinale a alternativa correta:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - 9.
Tema central: A questão aborda o uso de operadores de incremento em shell script, especialmente a diferença entre pré-incremento (++b) e pós-incremento (a++). Esse tema é fundamental em concursos, pois exige compreensão de lógica de programação e execução de comandos no Bash.
Resumo teórico: Em shell script, o operador ++ pode ser usado antes (pré-incremento) ou depois (pós-incremento) da variável. O pós-incremento (a++) retorna o valor atual de "a" antes de incrementar, enquanto o pré-incremento (++b) incrementa primeiro e depois retorna o novo valor de "b". Isso é avaliado dentro da expressão aritmética $(( )) no Bash (vide documentação oficial Bash: Arithmetic Expansion).
Justificativa da alternativa correta:
- Valores iniciais: a = 5, b = 3.
- a++ (pós-incremento) retorna 5 e depois incrementa "a" para 6.
- ++b (pré-incremento) incrementa "b" para 4 e retorna 4.
- A expressão a++ + ++b resulta em 5 + 4 = 9.
Portanto, a saída impressa é 9.
Análise das alternativas incorretas:
A - Errada. Não há erro de sintaxe; ++ é válido em aritmética do Bash.
B - Errada. 8 seria o resultado se ambos fossem pós-incrementados (5 + 3 = 8).
C - Errada. 7 não corresponde a esta combinação de operadores e valores.
E - Errada. 10 não é resultado possível com estes valores e incrementos.
Estratégia para interpretação:
Dê atenção à ordem dos incrementos e leia cuidadosamente o uso de ++ antes ou depois da variável. Muitas pegadinhas ocorrem por inverter pré e pós-incremento!
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Em shell script, o operador ++ pode ser usado antes (pré-incremento) ou depois (pós-incremento) da variável. O pós-incremento (a++) retorna o valor atual de "a" antes de incrementar, enquanto o pré-incremento (++b) incrementa primeiro e depois retorna o novo valor de "b". Isso é avaliado dentro da expressão aritmética $(( )) no Bash (vide documentação oficial Bash: Arithmetic Expansion).
- Valores iniciais: a = 5, b = 3.
- a++ (pós-incremento) retorna 5 e depois incrementa "a" para 6.
- ++b (pré-incremento) incrementa "b" para 4 e retorna 4.
- A expressão a++ + ++b resulta em 5 + 4 = 9.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo