1 、奇偶性
原因:
Java 对取余操作符(%)的定义所产生的后果。该操作符被定义为对于所有的 int 数值 a 和所有的非零 int 数值 b,都满足下面的恒等式:
(a / b) * b + (a % b) == a
结果:
当取余操作返回一个非零的结果时,它与左操作数具有相同的正负符号。
解决方案:
只需将 i % 2 与0 而不是与1 比较,并且反转比较的含义即可:
public static boolean isOdd(int i){
return i % 2 != 0;
}
OR
public static boolean isOdd(int i){
return (i & 1) != 0;
}