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