判断奇数,java陷阱

/**

  • 判断是否为奇数

  • @author husky
    /
    public class IsOdd {
    public static void main(String[] args) {
    int demo1 = 3;
    int demo2 = -3;
    System.out.println("isOddBefore demo1: " + isOddBefore(demo1)); //true
    System.out.println("isOddBefore demo2: " + isOddBefore(demo2)); //false
    System.out.println("isOddAfter demo1: " + isOddAfter(demo1)); //true
    System.out.println("isOddAfter demo2: " + isOddAfter(demo2)); //true
    /

    * 结果:
    * isOddBefore demo1: true
    * isOddBefore demo2: false
    * isOddAfter demo1: true
    * isOddAfter demo2: true
    */
    }

    /**

    • 解析:
    • 该方法在传入的参数为负奇数时,判断出错;
    • java对" % "的定义 (a/b) * b + (a % b) == a;
    • 意思是b整除a,将商乘以b,然后加上余数能够得到最初的值;与java的截尾整数整除操作符'/'相结合
    • 可以意味着:当取余操作返回一个非0的结果时,它与左操作符具有相同的正负号。
    • 因此当传入一个负奇数的时候返回的是-1,则结果得到的是false
    • @param demo
      */
      public static boolean isOddBefore(int demo) {
      return demo % 2 == 1;
      }

    /**

    • 解决:
    • 这一题解决只要与0比较就可以了
    • 但遇到判读是否能被其他的数整除的时候就需要注意了;
    • @param demo
      */
      public static boolean isOddAfter(int demo) {
      return demo % 2 != 0;
      }
      }
posted @   时光舟  阅读(438)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
点击右上角即可分享
微信分享提示