Java 判断整数奇偶性的面试题解析与优化
这是一道经典的 Java 面试题,要求完成代码,判断一个整数是否是奇数。
基础实现
题目很简单,完成代码,判断一个整数是否是奇数:
public boolean isOdd(int i)
相信相当数量的人都已经在准备吐槽了,只要看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。不过别着急,不管你信不信,这道笔试题我拿到的答案好多都长这样:
public boolean isOdd(int i) {
if (i % 2 == 1) {
System.out.println("是奇数");
} else {
System.out.println("偶数");
}
}
然后编译一下,发现错误了,顶多改成这样:
public boolean isOdd(int i) {
if (i % 2 == 1) {
return true;
} else {
return false;
}
}
好吧,我承认我在筛选简历的能力可能有一些问题,不过不管你信不信,好多大厂工作了几年的程序员,都会写出如上风格的代码。
于是我继续进行引导:
面试官:这个函数的定义要求返回一个什么类型的值? 候选人:布尔类型。 面试官:那么,你 if 后面的括号里面的表达式的值是一个什么类型的? 候选人:也是布尔类型。 面试官:然后呢?
有少量候选人虽然没说出来,但是我能看出来他们觉得这只是一个巧合,并不知道怎么进行下一步。不过,大多数人想了想之后,还是会优化成如下代码:
public boolean isOdd(int i) {
return i % == ;
}


