Java之戳中痛点 - (2)取余用偶判断,不要用奇判断

取余判断原则:取余用偶判断,不要用奇判断

先看一个 程序:

package com.test;
import java.util.Scanner;

public class t1 {
    public static void main(String[] args) {    
            //接收键盘输入
            Scanner in = new Scanner(System.in);
            while(in.hasNextInt()){
                int i = in.nextInt();
                System.out.println(i%2==1?"奇数":"偶数");
            }
    }
}

再看一下结果:

这里就有疑问了,结果怎么出现了-1为偶数

看一下java取余算法(%标识符)怎么计算取余,*模拟*方法实现:

//被除数 dividend 除数divisor
public static int remaindar(int dividend,int divisor){
        return dividend - dividend/divisor*divisor;
}

分析方法发现 -1取余还是 -1,所以被认定为偶数;

 

正确写法:

package com.test;
import java.util.Scanner;

public class t1 {
    public static void main(String[] args) {    
            //接收键盘输入
            Scanner in = new Scanner(System.in);
            while(in.hasNextInt()){
                int i = in.nextInt();
                System.out.println(i%2==0?"偶数":"奇数");
            }
    }
}

 结果:

posted @ 2017-02-09 17:34  Json_wangqiang  阅读(2761)  评论(1编辑  收藏  举报