Analise o seguinte trecho de código Java:int n= 4; for (int...
Analise o seguinte trecho de código Java:
int n= 4;
for (int i= n-1; i > 1; i--){
n*= i + n;
}
Qual será o valor da variável n após a execução?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Resposta Correta: E - 840
Para resolver esta questão, é importante entender os conceitos de loops em Java, especificamente o loop for, e a operação de multiplicação e atribuição combinada (*=). O loop for é utilizado para repetir um bloco de código por um número definido de vezes, e a operação *= multiplica a variável pelo valor à direita e atribui o resultado à variável.
Vamos desmembrar o loop do código dado:
for (int i = n - 1; i > 1; i--) { n *= i + n; }
Este loop começa com i sendo inicializado com n - 1, que é 3. A condição de continuação é i > 1, o que significa que o loop será executado enquanto i for maior que 1. A cada iteração, i é decrementado por 1 (i--).
A operação dentro do loop é n *= i + n;, que significa n = n * (i + n). A cada iteração, vamos atualizar o valor de n e decrementar i.
Acompanhando o loop passo a passo:
- 1ª iteração: i = 3; n = 4 * (3 + 4) = 4 * 7 = 28
- 2ª iteração: i = 2; n = 28 * (2 + 28) = 28 * 30 = 840
Após a segunda iteração, i é decrementado para 1, o que faz a condição i > 1 ser falsa e o loop termina. O valor final de n é 840.
Logo, a alternativa correta é a E, pois nesse ponto do código, após a execução do loop, o valor de n é 840.
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
Correta letra D)
- Inicialmente, 'n' é definido como 4.
- Em seguida, entramos em um loop 'for' com a variável de controle 'i' iniciando em 'n-1' (ou seja, 3) e decrementando a cada iteração enquanto 'i' for maior que 1.
- Dentro do loop, multiplicamos 'n' pelo valor de 'i' mais 'n' e atribuímos o resultado a 'n'.
- Na primeira iteração, 'i' será igual a 3, então a multiplicação será: n * (3 + 4) = 4 * 7 = 28.
- Na segunda iteração, 'i' será igual a 2, então a multiplicação será: n * (2 + 28) = 28 * 30 = 840.
Portanto, após a execução do código, o valor final da variável 'n' será 840.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo