21.用偶判断,不用奇判断

我们在学java的基本运算符时,经常会用到 " % " 运算符。还记得我们是如何判断一个数是否为偶数的吗?

我们之前的代码是这样的value%2==0?"偶数":"奇数"; 那么现在我们突发奇想将代码改为value%2==1?"奇数":"偶数";是否可以成功呢?
动手写个demo试试:

   public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入多个数字判断奇偶:");
        while(input.hasNextInt()) {
            int value = input.nextInt();
            String result = value % 2 == 1 ? "奇数" : "偶数";

            System.out.println("输入为:" + value + " -->  " + result);
        }
    }

运行结果:
请输入多个数字判断奇偶:0 1 -1 2
输入为:0 --> 偶数
输入为:1 --> 奇数
输入为:-1 --> 偶数
输入为:2 --> 偶数

What? -1 是偶数?
回过头来看看我们之前的那种写法:

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入多个数字判断奇偶:");
        while(input.hasNextInt()) {
            int value = input.nextInt();
            String result = value % 2 == 0 ? "偶数" : "奇数";

            System.out.println("输入为:" + value + " -->  " + result);
        }
    }

运行结果:
  请输入多个数字判断奇偶:0 1 -1 2
  输入为:0 --> 偶数
  输入为:1 --> 奇数
  输入为:-1 --> 奇数
  输入为:2 --> 偶数


查阅资料才知道,原来java中的求余操作是这么算出来的:

    //模拟求模运算, dividend表示被除数,divisor表示除数
   public static int remainder(int dividend,int divisor){
           return divide-divide/divisor*divisor
   }

我们把 -1 和 2 分别作为dividenddivisor传入这个方法发现求模返回为-1,当然不等于1啦!

知道原因了,解决方法就是以后我们判断奇偶时还是老老实实用 判断是否等于0才为偶数,否则为奇数吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,096评论 1 19
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 看到标题,忽然我想到了一个段子:我的一对儿子两岁后就常问我他们是从哪里来的?我就会指指肚皮告诉他们是从我的肚子里生...
    筱梦同行me阅读 842评论 1 2
  • 妞妞宝贝已经两岁两个月了。 记得一次夜里她哭着说:“我非要坐小凳子!”唤她,她并没有醒,还在嚷嚷,后来告诉她说你可...
    不能往返的路阅读 256评论 0 0
  • 那地方尖剌剌疼了一下,把神游中的伊柳拉回来。 她弓形的身子紧绷起来,好一会儿才重新松弛。她低头看,一团硬币大小的红...
    月牙年轮阅读 500评论 4 4