1) Post Vs Pre Increment
int a = 5;
int b = a++ + ++a;
System.out.println(a + " " + b);
Answer: 7 12
Explanation:
- a++ → uses 5, then a = 6
- ++a → increments to 7, uses 7
- b = 5 + 7 = 12
2) Multiple
Post Increments
int x = 3;
int y = x++ + x++ + x;
System.out.println(x + " " + y);
Answer: 5 12
Explanation:
- First x++ → 3 (x=4)
- Second x++ → 4 (x=5)
- Last x → 5
- y = 3 + 4 + 5 = 12
3)
Pre and Post Mixed
int i = 2;
int j = ++i + i++ + --i;
System.out.println(i + " " + j);
Answer: 3 9
Explanation:
- ++i → 3
- i++ → 3 (i=4)
- --i → 3
- j = 3 + 3 + 3 = 9
4) Assignment
Trick
int a = 10;
a = a++ + ++a;
System.out.println(a);
Answer: 22
Explanation:
- a++ → 10 (a=11)
- ++a → 12
- a = 10 + 12 = 22
5)
Inside Expression with Same Variable
int a = 1;
int b = a++ + a++ + ++a;
System.out.println(a + " " + b);
Answer: 4 7
Explanation:
- a++ → 1 (a=2)
- a++ → 2 (a=3)
- ++a → 4
- b = 1 + 2 + 4 = 7
6)
Boolean Comparison Trap
int a = 5;
if (a++ == ++a) {
System.out.println("Equal");
} else {
System.out.println("Not
Equal");
}
Answer: Not Equal
Explanation:
- a++ → 5 (a=6)
- ++a → 7
- 5 != 7
7)
Loop Confusion
int i = 0;
while (i++ < 5) {
System.out.print(i + " ");
}
Answer: 1 2 3 4 5
Explanation:
- Condition uses old value, prints incremented value
8)
Nested Increment
int a = 2;
int b = a++ * ++a;
System.out.println(a + " " + b);
Answer: 4 8
Explanation:
- a++ → 2 (a=3)
- ++a → 4
- b = 2 * 4 = 8
9)
Decrement Trick
int a = 5;
int b = --a + a-- + --a;
System.out.println(a + " " + b);
Answer: 2 10
Explanation:
- --a → 4
- a-- → 4 (a=3)
- --a → 2
- b = 4 + 4 + 2 = 10
10)
Self Assignment Trap
int a = 3;
a = a++ + a++ + ++a;
System.out.println(a);
Answer: 13
Explanation:
- a++ → 3 (a=4)
- a++ → 4 (a=5)
- ++a → 6
- a = 3 + 4 + 6 = 13
No comments:
Post a Comment