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.
Gbzao
Maio 22, 2008, 9:47am
#3
Tente assim:
int a = 0;
for(int i = 0; i < 10;i++) {
a++;
System.out.println(i);
System.out.println(a);
}
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,