Karthik, To compute a, the compiler first sees what a is (1), then does the post-increment (now a = 1), then finally set a to what it saw the first time (which was 1). So, a will be 1 once the "=" is done. To compute b, you must remember that operands are computed left to right. So, the first operand will be 1, then b is incremented so be = 2. Then the second operand is retrieve (which is b, now 2). Then the "+" is done, using 2 and 1. So, be = 3. Does that make sense?
hey Karthik, this is a great thread to read on the post increment operator. post increment operator but in quick terms. int a = 1; int b = 1; a = a++; //a=a; then add 1 to a, so a=1; the last post increment did happen but did not get assigned to anything b = b++ + b; //b=b++ + b; b=1 + 2 b=3 same here because it increments after it has done the last thing. System.out.println(a+ " "+b); Davy [ April 19, 2004: Message edited by: Davy Kelly ]