&& operator cannot be applied to Boolean and integer variables . So, If you try
r = t && 0 - The compiler complains that boolean and int cannot be used. So,
Java tries to compile ur code like this
r = (t && (0 < (i+=2)) - It tries to get another boolean operand.
Here (0 < (i+=2)) evaluates to true. Looks like, eventhough the higest precedence is &&, when it comes to the type of primitives, that takes higher precedence than the short circuit operator.
Hope this would help.
Padma