网站首页 > 精选教程 正文
在代码开发中,我们应该做到 “知其然,并知其所以然”。
判断一个数是奇数还是偶数是小学里学的基本知识,在代码开发中,一个数字是否是偶数,只需要判断是否能被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() 方法。
完毕
- 上一篇: BigInteger实现除法取余
- 下一篇: 为什么HashMap不用取余操作来计算下标?
猜你喜欢
- 2024-11-17 在Java中的算术表达式 #表达式求值
- 2024-11-17 「Java基础-03」java运算符及类型转换
- 2024-11-17 Java 中常用的进制转换
- 2024-11-17 一张图彻底搞懂Java取整函数ceil、floor、round的区别!建议收藏
- 2024-11-17 为什么HashMap不用取余操作来计算下标?
- 2024-11-17 BigInteger实现除法取余
- 2024-11-17 05-java算术运算 (java) 一个视频学会一个编程知识点
- 2024-11-17 大数据必学Java基础(十五):算术运算符
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)