判断奇数,java陷阱
/**
-
判断是否为奇数
-
@author husky
/
public class IsOdd {
public static void main(String[] args) {
int demo1 = 3;
int demo2 = -3;
System.out.println("isOddBefore demo1: " + isOddBefore(demo1)); //true
System.out.println("isOddBefore demo2: " + isOddBefore(demo2)); //false
System.out.println("isOddAfter demo1: " + isOddAfter(demo1)); //true
System.out.println("isOddAfter demo2: " + isOddAfter(demo2)); //true
/
* 结果:
* isOddBefore demo1: true
* isOddBefore demo2: false
* isOddAfter demo1: true
* isOddAfter demo2: true
*/
}/**
- 解析:
- 该方法在传入的参数为负奇数时,判断出错;
- java对" % "的定义 (a/b) * b + (a % b) == a;
- 意思是b整除a,将商乘以b,然后加上余数能够得到最初的值;与java的截尾整数整除操作符'/'相结合
- 可以意味着:当取余操作返回一个非0的结果时,它与左操作符具有相同的正负号。
- 因此当传入一个负奇数的时候返回的是-1,则结果得到的是false
- @param demo
*/
public static boolean isOddBefore(int demo) {
return demo % 2 == 1;
}
/**
- 解决:
- 这一题解决只要与0比较就可以了
- 但遇到判读是否能被其他的数整除的时候就需要注意了;
- @param demo
*/
public static boolean isOddAfter(int demo) {
return demo % 2 != 0;
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)