Это потому, что +
имеет более высокий приоритет , чем ^
, поэтому он компилируется в:
("The result is " + a) ^ a
Что, очевидно, не будет работать.Поставьте вокруг него круглые скобки:
System.out.print("The result is " + (a^a));
Или, как упоминал Хольгер, вы можете устранить эту проблему, используя printf
:
System.out.printf("The result is %d", a^a);