成功的法则极为简单,但简单并不代表容易。
平时奇数我们一般是这样判断的。
public static boolean isOdd(int i) { return i % 2 == 1; }
这个方法可行吗?
所谓奇数平时被定义为被2整除余1的整数。表达式i%2计算的是除以2时所产生的余数,因此认为该方法可行。遗憾的是,他不行。因为int值有二分之一是负整数,当负数整除2得到的余数也一定是负数。该方法就是在假定传入的值都是正数才成立的。比如说-3%2=-1.
其实这个问题很容易改正:
public static boolean isOdd(int i) { return i % 2 !=0; }
写法二:
public static boolean isOdd(int i) { return (i&1)!=0; }
小结:判断奇数性不能用1来做余数判断,不能被2整除的数一定是奇数。正奇数和负奇数
相关推荐
综上所述,文档《java解惑 PDF版》的这部分内容涵盖了在Java中处理取余、奇偶判断和浮点数精度问题时需要考虑的诸多细节。开发者在进行编程时应当特别注意这些细节,避免走入常见的陷阱。在处理涉及精度的计算时,...
《Java解惑》系列是一本专注于解答Java编程中常见困惑的书籍,由作者junJZ_2008在JavaEye社区分享。该系列共有八篇文章,内容涵盖了许多基础但重要的Java知识点,旨在帮助读者深化对Java语言的理解,尤其是那些在...
### JAVA解惑中的关键知识点解析 #### 谜题1:奇数性的判断 在《JAVA解惑》一书中,作者通过一系列实例介绍了Java编程语言中的一些不易掌握的知识点。其中一个例子是关于如何正确判断一个整数是否为奇数。 **原始...
Java Puzzlers 中文版(Java解惑) Java 谜题 1——表达式谜题 谜题 1:奇数性 下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转 吗? public static boolean isOdd(int i){ return i % 2 == 1...
### Java解惑:深入理解Java中的谜题与陷阱 #### 表达式谜题:奇数判断误区 在探讨Java编程中的谜题时,我们首先遇到的是关于奇数判断的一个常见陷阱。根据“Java谜题”一书的中文版描述,一个简单的函数`public ...
#### 一、奇数判断方法的陷阱 **标题与描述中的知识点:** 在给定的标题“经典 java 解惑”和描述“java 解惑技术”中,主要涉及了一个关于Java编程语言中判断一个整数是否为奇数的方法及其潜在的问题。 **详细...
Java编程语言中的“疑难解惑”常常涉及到对语言特性的深入理解,特别是在处理特定问题时。本篇文章将探讨两个常见的Java谜题,涉及取余运算符 `%` 和浮点数精度问题。 首先,我们来看“表达式谜题”。在Java中,`...
Java中的`double`类型属于二进制浮点数,它在表示十进制小数时可能会出现精度损失的问题。这是因为某些十进制小数无法用二进制数精确表示,例如`1.1`。当使用`double`类型进行算术计算时,这会导致不可预期的结果。...
**谜题背景**: 在《JAVA解惑》这本书中提到了第一个谜题:如何判断一个整数是否为奇数。该谜题提供了一个看似合理的解决方案,但实际运行时会出现问题。 **原方法实现**: ```java public static boolean isOdd(int ...
#### 奇数判断方法的正确性 在Java中,判断一个整数是否为奇数的常见方法是通过取余操作符(%)来实现。例如,判断方法`isOdd(int i)`使用`return i % 2 == 1;`来判断传入的整数`i`是否为奇数。这个方法看起来直观...
在《JAVA解惑》文档中的第一个谜题关注的是一个简单的逻辑判断:一个整数是否为奇数。虽然这个问题看似简单,但在Java语言中却隐藏着一个容易被忽视的陷阱。 **谜题描述** 代码片段提供了一个名为`isOdd`的方法,...