取余判断原则:取余用偶判断,不要用奇判断
先看一个 程序:
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?"偶数":"奇数"); } } }
结果: