这是因为复合赋值运算符会进行隐式转换。
从JLS复合分配运算符:
形式的复合赋值表达式
E1 op= E2等效于E1 = (T) ((E1) op(E2)),其中T是的类型E1,不同之处在于该表达式E1仅被评估一次。
对于二进制
+运算符,则必须显式进行强制转换。进行第四项作业:
intnum = (int)(intnum+longnum);
它会工作。这就是您的复合赋值表达式的计算结果。

这是因为复合赋值运算符会进行隐式转换。
从JLS复合分配运算符:
形式的复合赋值表达式
E1 op= E2等效于E1 = (T) ((E1) op(E2)),其中T是的类型E1,不同之处在于该表达式E1仅被评估一次。
对于二进制
+运算符,则必须显式进行强制转换。进行第四项作业:
intnum = (int)(intnum+longnum);
它会工作。这就是您的复合赋值表达式的计算结果。