Operador reduzido

int a = 0;
for(int i = 0; i < 10;i++)
{
a = a++;
System.out.println(i);
System.out.println(a);
}

É o primeiro código que estou colocando, espero que esteja dentro das regras, senão tiver, um dia aprendo…

A variável “i” incrementou, mas “a”, permaneceu com zero.
Utilizando ++a o incremento ocorreu.

sds

Já ví que coloquei o código errado, mas agora acho que entendi.

Usar Code no início e /Code no final .

SDS.

Tente assim:

		   int a = 0;  
		   
		   for(int i = 0; i < 10;i++) {
			   a++;
			   System.out.println(i);
			   System.out.println(a);
		   }

Qual a dúvida?

O seu problema são operadores pós-fixos e pré-fixos. Pegue uma apostila de java ( aconselho a FJ-11 da Caelum ) e estude direito.

Até!

A dúvida é por que:

a = a++; não funciona e

a = ++a; funciona…

Isso é devido o operador de pós-incremento (x++) só ser avaliado após a atribuição. Já o operador de pré-incremento, é avaliado antes da atribuição.
Exemplo:

int a = 0;
if (0 < a++) {
   System.out.println("Isso não vai imprimir!");
}
System.out.println("a = " + a); // a = 1

Abraços… :lol:

a++ usa o valor de a e depois incrementa.
++a incrementa e depois usa o valor de a.
Ex.:

int b = 0; int a = 0; b = a++; //Nesse momento a ainda é 0 e b vai receber 0 //Já nessa linha a é 1;

int b = 0; int a = 0; b = ++a; //Nesse momento a já é 1 e b vai receber 1

Espero que não tenha ficado muito confuso…

Abraços,

Valeu Pessoal!!