Minhas Dúvidas

4 respostas
sammaraAdriana

Pessoal, alguém pode me ajudar? Sei que a saída é 13, mas eu não estou entendendo…

class Teste{ public static void main(String [] args){ int i=10; while(i++<=10) i++; System.out.println(i); } }
Muito obrigada.

4 Respostas

leonardobhbr

Seguinte seu i começa com 10

Ao voce executar esta linha ele primeiro compara i que vale 10 para depois incrementar se fosse

while(++i <= 10) ele iria incrementar o i primeiro para depois comparar com menor ou igual a 10 e não entraria no while

Voltando ao codigo ele entra no while e o i já esta valendo 11

i++; i agora vale 12

while(i++ <= 10) Ele compara 12 se é menor ou igual a 10, não é só que incrementa de novo e para.

A

Vamos lá, vamos ver se ajudo heheheh

Na primeira vez o sua variavel “i” entra no while valendo 10
mas depois vc manda incrementar ela, passando a ser i=11
Na segunda vez que ela vai acessar o while vc incrementa seu “i” antes de comparar, e passa a i=12
seu while verifica e vê que é false, mas antes de sair vc incrementa seu “i” mais uma vez

faça o seguinte teste, pare de incrementar seu “i” dentro do while e verá que ele vai sairá na segunda comparação com o valor 11.

sammaraAdriana

Valeu pessoal, eu não estava vendo que ele iria entrar no while novamente.

Muito obrigada, agora eu entendi.

sammaraAdriana

Fiz essa questão e o meu resultado foi 12 restored 42, mas a resposta é 121 restored 42.
Alguém pode me ajudar a entender?

Muito obrigada.
import java.io.*;
class Food {Food() { System.out.print("1"); } }

class Fruit extends Food implements Serializable {
Fruit() { System.out.print("2"); } }

public class Banana2 extends Fruit { int size = 42;
public static void main(String [] args) {
    Banana2 b = new Banana2();
    b.serializeBanana2(b); // assume correct serialization
    b = b.deserializeBanana2(b); // assume correct
    System.out.println(" restored "+ b.size + " "); }
    // more Banana2 methods
}
Criado 12 de novembro de 2011
Ultima resposta 17 de nov. de 2011
Respostas 4
Participantes 3