美文网首页
21. 用偶判断,不用奇判断

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

作者: ggr | 来源:发表于2018-03-08 21:07 被阅读0次

    我们在学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才为偶数,否则为奇数吧。

    相关文章

      网友评论

          本文标题:21. 用偶判断,不用奇判断

          本文链接:https://www.haomeiwen.com/subject/mncufftx.html