您的位置 首页 java

Java开发高质量代码建议3:用偶判断,不用奇判断

在代码开发中,我们应该做到 知其然 ,并知其所以然”。

判断一个数是奇数还是偶数是小学里学的基本知识,在代码开发中,一个数字是否是偶数,只需要判断是否能被2整除,那你会有几种写法呢?

 int a = 10;
int flag = a % 2;
if (flag == 0) {
    System.out.println("是偶数");
} else {
    System.out.println("是奇数");
}  

或者还可以这样写:

  int a = 10;
 int flag = a % 2;
 if (flag == 1) {
      System.out.println("是奇数");
  } else {
      System.out.println("是偶数");
  }  

对于这个例子来讲,两种运行效果是一致的:

Java开发高质量代码建议3:用偶判断,不用奇判断


然后我们来升级一下,动态的输入奇偶数来判断:

  public  static   void  main(String[] args) {
     //接收键盘输入参数
     Scanner input = new Scanner(System.in);
     System.out.println("请输入多个数字判断奇偶");
     while (input.hasNextInt()) {
         int a = input.nextInt();
         int flag = a % 2;
         if (flag == 1) {
             System.out.println(a+" => 是奇数");
         } else {
             System.out.println(a+" => 是偶数");
         }
     }
}  

当输到-1、-3时,结果就出错了,这和 Java 中的取余计算算法有关系:

     /**
     * 取余计算 Java 处理取余原理
     *
     * @param dividend 被除数
     * @param divisor  除数
     * @return
     */
    public static int remainder(int dividend, int divisor) {
        return dividend - dividend / divisor * divisor;
    }  

根据上面的方法,当输入-1时,计算结果是 -1,不等于1,所以结果就被判定为偶数了,我们修改一下判断方式:

Java开发高质量代码建议3:用偶判断,不用奇判断


在计算机语言中,% (或mod) 是一个常见的数学 运算符 ,但不同的计算机语言对 % 有不同的定义,有的语言把 % 定义为取模,有的则把 % 定义为取余。

在中文体系下,取模和取余的定义不同1,在英文体系中,只有一个 模运算 (Modulo operation)2,但是有最小正余数 (the least positive remainder) 和最小绝对余数 (the least absolute remainder) 的概念。

在 Java 中,% 代表的是取余。如果要进行取模,可以用 Math.floorMod() 方法。


完毕

文章来源:智云一二三科技

文章标题:Java开发高质量代码建议3:用偶判断,不用奇判断

文章地址:https://www.zhihuclub.com/185947.shtml

关于作者: 智云科技

热门文章

网站地图