朋友考了我个问题,我是初学Java,有点疑问。
问题是这样的代码能真正判断一个整数的奇偶吗?我实在是看不出来有什么不能,大家是什么意见?int a = 随便什么数;
if(a%2==1){
System.out.println("是奇数");
}else{
System.out.println("不是奇数");
}
问题是这样的代码能真正判断一个整数的奇偶吗?我实在是看不出来有什么不能,大家是什么意见?int a = 随便什么数;
if(a%2==1){
System.out.println("是奇数");
}else{
System.out.println("不是奇数");
}
public class Test{
public static void main(String[] args){
int a = -5;
if(a % 2 == 1) //<--- -5%2的结果是-1
System.out.println("是奇数");
else
System.out.println("不是奇数");
}
} 原因:因为求余符号“%”的特点是,如果要求余的变量是正整数,那么余数将是正整数;如果要求余的变量是负整数,那么余数将是负整数。
int a = 随便什么数;
if(a%2==0){
System.out.println("不是奇数");
}else{
System.out.println("是奇数");
}
正确的做法 ,只需将 a % 2 与0而不是与1比较
a % 2 != 0;
也可以这样写
(a & 1) != 0;
可以加异常处理代码class DivisorCanNotException extends Exception
{
DivisorCanNotException ()
{
super();
}
}
if(a<0)throw DivisorCanNotException