网站首页 > java教程 正文
在代码开发中,我们应该做到 “知其然,并知其所以然”。
判断一个数是奇数还是偶数是小学里学的基本知识,在代码开发中,一个数字是否是偶数,只需要判断是否能被2整除,那你会有几种写法呢?
int a = 10;
int flag = a % 2;
if (flag == 0) {
System.out.println("是偶数");
} else {
System.out.println("是奇数");
}
或者还可以这样写:
int a = 10;
int flag = a % 2;
if (flag == 1) {
System.out.println("是奇数");
} else {
System.out.println("是偶数");
}
对于这个例子来讲,两种运行效果是一致的:
然后我们来升级一下,动态的输入奇偶数来判断:
public static void main(String[] args) {
//接收键盘输入参数
Scanner input = new Scanner(System.in);
System.out.println("请输入多个数字判断奇偶");
while (input.hasNextInt()) {
int a = input.nextInt();
int flag = a % 2;
if (flag == 1) {
System.out.println(a+" => 是奇数");
} else {
System.out.println(a+" => 是偶数");
}
}
}
当输到-1、-3时,结果就出错了,这和Java中的取余计算算法有关系:
/**
* 取余计算 Java 处理取余原理
*
* @param dividend 被除数
* @param divisor 除数
* @return
*/
public static int remainder(int dividend, int divisor) {
return dividend - dividend / divisor * divisor;
}
根据上面的方法,当输入-1时,计算结果是 -1,不等于1,所以结果就被判定为偶数了,我们修改一下判断方式:
在计算机语言中,% (或mod) 是一个常见的数学运算符,但不同的计算机语言对 % 有不同的定义,有的语言把 % 定义为取模,有的则把 % 定义为取余。
在中文体系下,取模和取余的定义不同1,在英文体系中,只有一个模运算 (Modulo operation)2,但是有最小正余数 (the least positive remainder) 和最小绝对余数 (the least absolute remainder) 的概念。
在 Java 中,% 代表的是取余。如果要进行取模,可以用 Math.floorMod() 方法。
完毕
- 上一篇: 为什么HashMap不用取余操作来计算下标?
- 下一篇: 第8天|Java入门有野,运算符
猜你喜欢
- 2024-11-19 滴滴从KV存储到NewSQL实战
- 2024-11-19 Java基础--While入门小练习
- 2024-11-19 java程序员必须要学习的源码——HashMap
- 2024-11-19 Java中HashMap源码解析
- 2024-11-19 入门级Java基础测试题,看看你能拿多少分
- 2024-11-19 Java中的大数据去重:七种解决方案与实战应用
- 2024-11-19 大厂爱问的HashMap的几个问题,看看你都答得上来吗?
- 2024-11-19 你知晓Java中的EnumMap吗?
- 2024-11-19 想要彻底搞懂HashMap?你得恶补下HashMap原理
- 2024-11-19 Java课程设计报告+源码-万年历的设计与实现
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)