Analise o código JavaScript exibido a seguir. function xpto (n) { var text = " " ; var i = 1; while (i <= n) { text += i + '; '; i++; } return text; } Num comando JS, a expressão xpto(5) retorna
- A)54321
Errada, porque o laço começa em 1 e cresce até 5, então não produz a sequência em ordem decrescente.
- B)12345
Errada, porque os números aparecem com separador '; ' e espaço, não como uma sequência pura sem pontuação.
- C)1;2;3;4;5;
Certa, porque a função concatena de 1 até 5, acrescentando '; ' a cada número.
- D)5;4;3;2;1;
Errada, porque a lógica do while não percorre de 5 para 1, e sim de 1 para 5.
- E)1;2;3;4;5;4;3;2;1;
Errada, porque o código não repete a sequência nem faz ida e volta; ele apenas monta uma sequência crescente única.
Gabarito: C
Neste código, a função xpto recebe um número n, cria uma string chamada text e inicia i com 1. Em seguida, o while repete o bloco enquanto i for menor ou igual a n. A cada volta, ele faz text += i + '; ', ou seja, concatena o valor de i seguido de ponto e vírgula e um espaço, e depois incrementa i com i++. Perceba o detalhe importante: o laço vai de 1 até n, em ordem crescente. Então, ao chamar xpto(5), a sequência montada é 1; 2; 3; 4; 5; com espaço ao final de cada item. Em prova, esse tipo de questão costuma testar leitura de fluxo e concatenação de strings, sem truques de recursão nem nada místico de JavaScript, só atenção ao while. Por isso, o retorno é exatamente a string formada pelos números de 1 a 5 separados por '; '. O gabarito C está correto porque o código não inverte a ordem, não pula valores e não elimina o separador final.