Questão nº 72
Questão de Estatística · FGV MP-SC 2022 (nº 72)
No contexto da linguagem de programação R, analise o código a seguir.
for (x in 1:10) {
if (x >= 4) {
print(x)
next }
if (x == 8) {break}
}
O número de linhas exibidas pela execução desse código é:
- A6;
- B7; (alternativa correta)
- C8;
- D9;
- E10.
Resposta comentada
Gabarito Alternativa B
Conceito-chave: O loop for percorre os valores de 1 a 10. O comando next pula para a próxima iteração imediatamente, ignorando o resto do código dentro do loop. O break interrompe o loop para sempre, mas ele nunca é alcançado porque o next sempre pula antes de chegar nele.
- (A) Incorreta: 6 seria o resultado se o
breakfuncionasse nox == 8, mas onextimpede que obreakseja avaliado. - (B) Correta: O
print(x)só executa quandox >= 4. Parax = 1, 2, 3nada é impresso. Parax = 4, 5, 6, 7, 8, 9, 10(7 valores), oprintroda e onextpula obreak. O loop termina naturalmente emx = 10, imprimindo 7 linhas. - (C) Incorreta: 8 seria o total de iterações a partir do 4, mas o loop vai até 10, não até 11.
- (D) Incorreta: 9 seria se o
breakfosse ignorado e oprintrodasse para todos osx >= 4, mas onextnão altera a contagem de impressões (que são 7). - (E) Incorreta: 10 seria se imprimisse todos os valores de 1 a 10, mas o
if (x >= 4)bloqueia os três primeiros.
Armadilha do distrator (A): A banca tenta fazer você acreditar que o break interrompe o loop no x == 8, imprimindo apenas 4, 5, 6, 7 (4 linhas) ou que o next não impede o break. Na verdade, o next é executado antes do if (x == 8), então o break nunca é alcançado. O loop roda até o fim (10), imprimindo 7 números.
Fonte: FGV MP-SC 2022 Analista de Dados e Pesquisas (Caderno Tipo 1). Reproduzida para fins de estudo.