判断一个整数是否是奇数? public boolean isOdd(int i){ return i%2 == 1; } 这个方法对吗?如果不对,什

如题所述

int n = -1;

System.out.println(Math.abs(n) % 2 == 1);
System.out.println(n % 2 != 0);

System.out.println(n >> 1 << 1 != n);
System.out.println((n & 1) == 1);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-27
这个返回的是错误的结果,因为所有的int值当中,有一半是负数,而isodd()方法对于所有负奇数的判断都会失败
第2个回答  推荐于2020-03-15
这个方法不对,在四分之一的时间里它返回的是错误的答案。
因为在所有的int型数值中,有一半是负数,而isOdd方法对所有的负奇数都会返回false。所有有四分之一判断错误。为什么会对所有负奇数返回false呢,因为%操作返回一个非零结果时,它与左操作数具有相同的正负符号,所以%操作后返回-1.经过判断为false。而要正确判断一个整数是否为奇数可以将return i%2==1改为return i%2!=0就可以了。
求采纳!!!
第3个回答  2012-06-28
妈妈咪呀!晕。。。。。。。。。。。。。。你是学理科的?
只要看看能否被2整除就OK了!追问

int类型--不包括所有的整数,有些整数是取不到的。

第4个回答  2012-08-15
对, 没有错误啊
相似回答