關於奇數,我們平常一般會使用如下方法去判斷:
public static boolean isOdd(int i){
return i%2==1;
}
但是這樣的代碼對於正整數來說是OK的,但是對於負整數來說是不行的。因爲返回將會是負整數。例如:
-3%2=-1;
總結一句話:上述判斷方式是不全面的;
所以,推薦使用以下兩種方式:
第一種:
public static boolean isOdd(int i){
return i%2!=0;
}
第二種:
使用位操作符AND(&)替代取餘操作符:
public static boolean isOdd(int i){
return (i&1)!=1;
}
第二個版本運行起來比第一個版本要快得多;
總結:
無論何時使用了取餘操作符,都要考慮操作數和結果的符號;