java解惑系列之奇数性
2015-06-29 17:31
561 查看
@(think in java)[java解惑|java|MarkDown|]
结果:
1. 当输入正整数时,可以正确判断奇偶性;
2. 当输入负整数时,结构都为false;
解释:
% 这个运算符的结果,是根据前一个数值的正负性来判断,如果是负数,结果就是负数;所以当输入的值是负数时,结果都是负数,返回的结果是false;
改进:
1. 只要
2.用按位于(&)运算符
% 操作符详解:
如果有:
a: int类型
b: 非0的int类型
则有恒等式:
如果
如果
如果
如果
由此可以得出, % 运算符得出的结果都是根据
谜题1:奇数性
下面的方法意图确定它那唯一的参数是否是一个奇数.这个方法能够正确运转吗?import javax.swing.JOptionPane; public class Test1 { public static void main(String[] args) { String s = JOptionPane.showInputDialog("请输入一个整数"); int a = Integer.parseInt(s); System.out.println(a); if (isOdd(a)) System.out.println("奇数"); else { System.out.println("偶数"); } } public static boolean isOdd(int i) { return i % 2 == 1; } }
结果:
1. 当输入正整数时,可以正确判断奇偶性;
2. 当输入负整数时,结构都为false;
解释:
% 这个运算符的结果,是根据前一个数值的正负性来判断,如果是负数,结果就是负数;所以当输入的值是负数时,结果都是负数,返回的结果是false;
改进:
1. 只要
i % 2的结果不为零,i就是一个奇数;
public static boolean isOdd(int i) { return i % 2 != 0; }
2.用按位于(&)运算符
i & 1结果如果为
1,则
i为奇数,结果为
0,则
i为偶数
public static boolean isOdd(int i) { return i & 1 == 1; }
% 操作符详解:
如果有:
a: int类型
b: 非0的int类型
则有恒等式:
(a / b)*b + (a % b) == a;成立
如果
a为正整数,
b为正整数;等式成立;
如果
a为正整数,
b为负整数;为了保证等式成立,
a % b的结果必须为正数;
如果
a为负整数,
b为正整数;为了保证等式成立,
a % b的结果必须为负数;
如果
a为负整数,
b为负整数;为了保证等式成立,
a % b的结果必须为负数;
由此可以得出, % 运算符得出的结果都是根据
%前面的数值的正负性给定结果的正负性.
相关文章推荐
- 【伯猫Java教程】网页游戏开发过程——游戏运营术语
- java ThreadLocal使用方法
- MyEclipse10中文乱码
- Java中重载和重写的区别
- Java的string类为什么是不可变的
- java☞Eclipse:WEB-INF、META-INF的作用
- springBoot 集成 Quartz任务调度
- java实现webservice几种方式比较
- Eclipse快捷键 10个最有用的快捷键
- netbeans-xdebug 断点调试php
- Spring的IOC容器—依赖注入
- Java 装箱和拆箱
- Java学习-021-Properties 获取配置项对应的值
- Java - Why wait notify and notifyAll called from synchronized block or method in Java
- java基础入门-arraylist存储开销
- java基础入门-arraylist存储开销
- Word Search II Leetcode Java
- Java jdbc中Statement,ResultSet,PreparedStatement
- Java中堆内存和栈内存详解
- Java学习-020-Properties 判断是否存在对应的 key 项