Java解惑

Java解惑阅读笔记之1奇数性

我只是一个虾纸丫 提交于 2019-11-27 00:15:44
以前一直都是看得多写得少(其实基本就没有写过),在iteye,csdn都开过blog,但是都很少写,感觉贡献太少,从今天起要开始努力了,将自己平常用到的,学到的觉得有意思的写出来跟大家一起分享,共同进步。 之前看过《Java Puzzlers》一书,觉得很有意思,最近再翻一遍,将其中一些很tricky的东西做个笔记,与大家分享。都不是自己的原创,版权属于原作者,这本书不错,大家有兴趣的话可以买一本~ http://book.douban.com/subject/1473329/ 问题: public static boolean isOdd(int i) { return i % 2 == 1; } 可以正确的判断i的奇偶性么? 正解: 不可以,当i为负数时候,i % 2 == -1,因为Java中对%的定义如下 (a / b) * b + (a % b) == a, 但是Java的整数相除采用了截尾操作。正确代码如下: public class Main1 { public static boolean isOdd(int i) { return i % 2 == 1; } public static boolean isOdd_2(int i) { return i % 2 != 0; } public static boolean isOdd_3(int i) {