Gente isso é possível? (Resolvido)

4 respostas
thebadshark

Olá galera estou tentando fazer um pequeno exercicio de while e só para tentar conhecer outros caminhos estou tentando fazer algo diferente.

Para entender melhor

O código normal é assim:

class While {

public static void main (String [] args) {
int idade = 15;

while (idade < 20) {
	System.out.println (idade);
	idade = idade + 1;

}	
    }

}

Gera uma numeração de 15 a 20 até aí tudo bem!

O que eu estou tentando fazer é:

Declarar a linha (idade=idade +1) dentro do System.out tipo: System.out.println (idade + 1);

E assim não ter que declara-la embaixo.
Tenho feito isso mas o programa entra num loop infinito.
Onde estou errando? :cry:

Grato

Thebadshark

4 Respostas

L

Olá,

Se você executar o código System.out.println(idade + 1) dentro do while, ele entrará em loop infinito pois a variável idade não está sendo incrementada e sempre mostrará:

16
16
16
16
16
INFINITO :slight_smile:

Por outro lado, você pode incrementar uma variável usando as formas prefixa e pósfixa de incremento, no seu caso, ++idade e idade++ respectivamente.

Usando a forma prefixa você terá o seguinte resultado:

public static void main (String [] args) { int idade = 15; while (idade < 20) { System.out.println (++idade); } }

16
17
18
19
20

Usando o forma pósfixa você terá o seguinte resultado:

public static void main (String [] args) { int idade = 15; while (idade < 20) { System.out.println (idade++); } }

15
16
17
18
19

sergiolopes

É bizarro mas vc pode fazer isso:

System.out.println (idade = idade + 1);

Isso porque em Java toda atribuição devolve o valor da atribuição.

thebadshark

Galera gostaria mais uma vez agradecer a todos que me ajudaram a solucionar mais essa dúvida.

Vlw

peerless

:smiley:

Criado 16 de março de 2007
Ultima resposta 19 de mar. de 2007
Respostas 4
Participantes 4