Java解惑

来源:互联网 发布:高端黑 知乎 编辑:程序博客网 时间:2024/04/25 12:36

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;}ORpublic static boolean isOdd(int i){    return (i & 1) != 0;}
1 0
原创粉丝点击