[RESOLVIDO] Por que o resultado Imprime t = 5 e s = 4?

3 respostas
jramont

Boa Noite, sou novo no fórum e gostaria de entender um código, por que ele Imprime t = 5 e s = 4?

int t = 2, s = 7;
do {
	if (t++ > --s) {
		t = t;

	}
} while (t < 5);

System.out.println("t = " + t + " e s = " + s);

Alguém poderia me explicar ficaria grato :)

Obrigado.

3 Respostas

A

No início temos t=2 e s=7

A cada passagem do do{} while loop, t é incrementado e s é decrementado.

O loop roda enquanto t é menor do que 5.
Quando t é 5, ele sai do loop, explicando porque ele imprime t como 5.

Se t começou em 2 e incrementou até 5, isso quer dizer que ele foi incrementado 3 vezes.

Como s é decrementado junto com t, s foi decrementado 3 vezes também, explicando porque ele imprime 4 ( 7 - 3 ).

Lembrando:
t++ => incremento
s-- => decremento

michetti

O t começa valendo 2 e o s 7

o do vai ser executado ate esta condição(if) seja verdadeira.

ou seja…

if(2 > 7) - FALSE

volta pro DO

if(3 > 6) - FALSE

volta pro DO

if(4>5) - FALSE

volta pro do

if(5 > 4) - TRUE

entra no IF

(t)5 = (t)5

Chega ai fim do DOWHILE pois 5 não é menor que 5

System.out.println("t = " + 5 + " e s = " + 4);

Se eu não me confundi em nenhuma parte é isso aew rsrsrs

jramont

Obrigado AbelBueno e michetti por esclarecer minha dúvida, demorei um pouco para entender mais já caiu a ficha ^^.
Vlw mesmo.

[RESOLVIDO]

Criado 13 de novembro de 2013
Ultima resposta 13 de nov. de 2013
Respostas 3
Participantes 3