SóProvas


ID
2065513
Banca
UPENET/IAUPE
Órgão
Facepe
Ano
2015
Provas
Disciplina
Programação
Assuntos

Considere os trechos de códigos abaixo, escritos em linguagem Java.

I:

public static void main(String[] args) {

int sum = 0;

for(int i = 2; i <= 50; i += 2) {

sum += i;

}

System.out.println(sum);

}

II:

public static void main(String[] args) {

int sum = 0;

int counter = 2;

while(counter <= 50) {

sum += counter;

counter += 2;

}

System.out.println(sum);

}

III:
public static void main(String[] args) {
int sum = 0;
int counter = 2;
do {
sum += counter;
counter += 2;
} while(counter <= 50);
System.out.println(sum);
}

O resultado é o mesmo para

Alternativas
Comentários
  • d-

    Tudo mesmo resultado: 650.

    A 1° coisa a se notar é que a condição do loop é i <=50, o que significa que ele vai executar até i = 50. Quando i for 52, o loop interrompe. Porque ha uma variavel recebendo a soma de todos os valores que i assume, é necessário fazer a soma dos termos de uma PA finita:

    Sn = ((a1 + an)*n)/2

    a1= 2
    an= 50
    n = 25

    Sn = ((2+50) * 25)/2
    Sn = (52 *25)/2
    Sn = 650

    O raciocínio é o mesmo para o while loop. Para o do while loop, parece que a resposta é diferente pela natureza desse loop que executa primeiro e depois faz a verificação. mas é necessário verificar que a única variável que é afetada é counter, o qual na primeira iteração assume valor de 4 (inicialização= 2. AUmenta 2 antes de entrar no loop), mas como a questão é o sum, ele continua com o mesmo valor do while loop simples por receber o valor do counter antes dele incrementar. Se fosse o contrário, resultado seria diferentes

  • Após análise do código sucintamente, os três apresentam o mesmo resultados!

     

     

    Letra D