Julgue o item a seguir, referente a linguagem de scripts.#!/...

Próximas questões
Com base no mesmo assunto
Q1815446 Programação

Julgue o item a seguir, referente a linguagem de scripts.


#!/bin/bash

x=0

while [ $x - le 2 ]

do

echo valor: $x

((x++))

done


O resultado do código shell script anterior será: valor: 3.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é E - errado.

Vamos entender porque essa é a resposta correta. O código em questão é um shell script que utiliza um loop while para imprimir valores incrementais de uma variável x. A intenção do código é incrementar a variável x a cada iteração do loop e exibir o seu valor.

O erro está na condição de comparação utilizada no loop while. Onde deveria ser -le (que é a abreviação de "less than or equal to", ou seja, "menor ou igual a"), no código foi utilizado - le, com um espaço adicional. Isso acarreta em um erro de sintaxe e o código não funcionaria como esperado.

Mas mesmo que a comparação estivesse correta, a afirmativa de que o resultado seria "valor: 3" ainda estaria incorreta, pois quando a variável x alcança o valor 3, a condição do loop while deixaria de ser verdadeira (pois 3 não é menor ou igual a 2), e o loop seria terminado sem executar o echo para o valor de x igual a 3. Portanto, os valores impressos seriam "valor: 0", "valor: 1" e "valor: 2".

Para resolver questões como essa, o conhecimento necessário é sobre a sintaxe de shell script, especialmente sobre estruturas de controle de fluxo (while loops), operadores de comparação e incremento de variáveis.

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

Gabarito: E

Os operadores do while:

-le = menor igual

-lt = menor que

-ge = maior igual

-gt = maior que

-eq = igual

-ne = diferente

No caso dessa questão há um espaço separando o operador - le, portanto não irá compilar, porém caso retirarmos o espaço o resultado seria:

valor: 0

valor: 1

valor: 2

De qualquer maneira estaria errado.

JUSTIFICATIVA: ERRADO. O código #!/bin/bash x=0 while [ $x -le 2 ] do echo valor: $x ((x++)) done executa um ciclo que começa com o valor de x = 0 até que o valor de x = 2. Dessa forma, o código apresenta o resultado de x em cada passo, conforme abaixo. valor: 0 valor: 1 valor: 2 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo