← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

Observe o código JavaScript a seguir. let x=""; let i=0; x=" 0 "; while (i < 10) { x += i; x = 10-i + x; i++; } Assinale o valor da variável x ao final do loop.

Gabarito: C

Aqui a chave é lembrar que, em JavaScript, o operador + com string faz concatenação, não soma. Como x já começa como texto (" 0 "), toda vez que você faz x += i, o número i vira texto e é colado no fim da sequência. Depois vem a linha x = 10 - i + x. Primeiro ocorre 10 - i, que é uma conta normal. Só que, na sequência, esse resultado é somado a x, que já é string. Aí o JavaScript muda o jogo e concatena tudo como texto. Ou seja: o valor numérico vira um prefixo grudado na string. Repetindo isso de i = 0 até i = 9, a parte da esquerda vai sendo construída na ordem inversa: 10, 9, 8, ... , 1. Ao mesmo tempo, a parte da direita vai acumulando 0, 1, 2, ... , 9. No final, o conteúdo fica exatamente "12345678910 0 0123456789". Por isso o gabarito é a letra C. A banca explora justamente a pegadinha clássica de tipo: você olha e pensa em soma, mas o comportamento real depende da coerção de tipos e da concatenação de strings.

Continue treinando

Questões relacionadas