O operando no lado esquerdo do operador de atribuição deve ser uma variável, não uma constante ou uma expressão. O valor da expressão de atribuição é = o valor da variável no lado esquerdo.
Perceber:
1) Não confunda o operador de atribuição = com o operador relacional ==.
2) Além do operador de atribuição =, existe também um operador de atribuição estendido.
Exemplo:
publicclassMain{publicstaticvoidmain(String[]args){inta=1;intb=2;intc=0;c=a+b;System.out.println(c=a+b=+c);c+=a;System. out.println(c+=a=+c);c-=a;System.out.println(c-=a=+c);c*=a;System.out.println(c*=a=+c );a=3;c=4;c/=a;System.out.println(c/=a=+c);a=5;c=6;c%=a;System.out.println(c %=a=+c);c&=a;System.out.println(c&=a=+c);c|=a;System.out.println(c|=a=+c);c^=a ;System.out.println(c^=a=+c);c>>=1;System.out.println(c>>=1=+c);c<<=1;System.out.println( c<<=1=+c);}}
Os resultados da execução são os seguintes:
c=a+b=3c+=a=4c-=a=3c*=a=3c/=a=1c%=a=1c&=a=1c|=a=5c^=a=0c>>=1= 0c<<=1=0