我们在学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 分别作为dividend
和divisor
传入这个方法发现求模返回为-1
,当然不等于1啦!
知道原因了,解决方法就是以后我们判断奇偶时还是老老实实用 判断是否等于0
才为偶数,否则为奇数吧。
网友评论