Gente isso é possível? (Resolvido)

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

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á:

[quote]16
16
16
16
16
INFINITO :slight_smile:
[/quote]

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); } }

[quote]16
17
18
19
20
[/quote]

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++); } }

[quote]15
16
17
18
19[/quote]

É 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.

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

Vlw

:smiley: