Java随笔:判断奇偶性

判断奇偶性很容易写出下面的代码:

public static boolean isOdd(int num) {
    return num % 2 == 1;
}

这个思路遵循了数学判断奇数的标准:“对2取余等于1”。

这段代码对负数属否成立呢?

System.out.println(isOdd(-3));

-3是奇数,应该返回true。

实际的结果:

java ParityTest
false

Java在处理取余操作时,并没有对负数结果转为正整数。

执行:

System.out.println("-3 % 2 = " + (-3 % 2));

会得到:

-3 % 2 = -1

所以,判断数值是否为偶数应该改为:

public static boolean isOdd(int num) {
    return num % 2 != 0;
}

用&操作可以写为:

public static boolean isOdd1(int num) {
    return (num & 1) == 1;
}
时间: 2024-08-01 10:33:12

Java随笔:判断奇偶性的相关文章

学习java随笔第八篇:封装、继承、多态

java和c#一样都是面向对象的语言. 面向对象的语言有三大特征:封装.继承.多态 封装 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. class Person2 { private String name; public void setName(String name) { this.name=name; } public String getName() { return name; } private String sex; public voi

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S

Java中判断字符串是否为数字的五种方法

推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 方法二: Java代码   /* * 判断是否为整数 * @param str 传入的字符串 * @return

java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

在javascript中有一个方法isDigit()使用来判断一个字符串是否都是数字,在java的字符串处理方法中没有这样的方法,觉得常常需要用到,于是上网搜了一下,整理出了两个用正则表达式匹配的判断方法,如下: // 判断一个字符串是否都为数字 public boolean isDigit(String strNum) { return strNum.matches("[0-9]{1,}"); } // 判断一个字符串是否都为数字 public boolean isDigit(Str

学习java随笔第七篇:java的类与对象

类 同一个包(同一个目录),类的创建与调用 class Man{ String name; void GetMyName() { System.out.println(name); } } public class Person { public static void main(String arges[]) { Man m=new Man(); m.name="小黄"; m.GetMyName(); } } 运行结果 不同的包(不同目录目录),类的创建与调用 package Peo

学习java随笔第六篇:数组

一维数组 创建一维数组并输出 public class OneDimensionalArray { public static void main(String argas[]) { int i[]=new int[10]; for(int j=0;j<i.length;j++) { i[j]=j; System.out.println(i[j]); } } } 多维数组 创建多维数组并输出 public class MultiDimensional { public static void m

学习java随笔第九篇:java异常处理

在java中的异常处理和c#中的异常处理是一样的都是用try-catch语句. 基本语法如下 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally语句 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } 抛出异常 使用thows和throw语句抛出异常 public static vo

Java编程判断是否是回文数

import javax.swing.JOptionPane; 自然数中还有一类数被称为回文数.回文数就是一个数的两边对称,如11,121,1221,9339,30203等等 public class CircleTest{ public static void main(String[] args){ String inputValue = JOptionPane.showInputDialog("请输入一个整数"); StringBuffer source = new String

Java快速判断是不是手机号

假如现在有一个字符串,如何快速准确的判断其是否为手机号? public boolean isMobileNO(String mobiles) { Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$"); Matcher m = p.matcher(mobiles); return m.matches(); } 相当简单-------------------------- Java快速判断是不是手