请教一下,这样的代码对吗?

songyibei 2009-07-04 06:23:11
朋友考了我个问题,我是初学Java,有点疑问。
问题是这样的代码能真正判断一个整数的奇偶吗?我实在是看不出来有什么不能,大家是什么意见?

int a = 随便什么数;
if(a%2==1){
System.out.println("是奇数");
}else{
System.out.println("不是奇数");
}
...全文
62 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigbug9002 2009-07-04
  • 打赏
  • 举报
回复
a&1==1为真 a是奇数
不善^ 2009-07-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 josy 的回复:]
a为负数的时候不对



Java codeint a = 随便什么数;
if(a%2==0){
System.out.println("是偶数");
}else{
System.out.println("是奇数");
}
[/Quote]

这个!
Lena-Yang 2009-07-04
  • 打赏
  • 举报
回复
问题只是说"这样的代码能真正判断一个整数的奇偶吗?"
当它为负整数时,一样是整数
所以负整数也得考虑
Lena-Yang 2009-07-04
  • 打赏
  • 举报
回复
一般只判断a%2==0为偶数,其它为奇数
scueczhang 2009-07-04
  • 打赏
  • 举报
回复
如果是负数就要另外考虑了,是正数的时候是正确的
361719298 2009-07-04
  • 打赏
  • 举报
回复
一般不判断 负数的奇偶性
可以加异常处理代码

class DivisorCanNotException extends Exception
{
DivisorCanNotException ()
{
super();
}
}
if(a<0)throw DivisorCanNotException
swandragon 2009-07-04
  • 打赏
  • 举报
回复
当 a 是一个负奇数时,a % 2 等于-1而不是1
正确的做法 ,只需将 a % 2 与0而不是与1比较
a % 2 != 0;
也可以这样写
(a & 1) != 0;

百年树人 2009-07-04
  • 打赏
  • 举报
回复
a为负数的时候不对


int a = 随便什么数; 
if(a%2==0){
System.out.println("不是奇数");
}else{
System.out.println("是奇数");
}
softcarrier 2009-07-04
  • 打赏
  • 举报
回复
//来写个程序测试一下吧,如果像下列代码中我把变量“a”赋值为“-5”,它会输出“不是奇数”。
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("不是奇数");
}
}


原因:因为求余符号“%”的特点是,如果要求余的变量是正整数,那么余数将是正整数;如果要求余的变量是负整数,那么余数将是负整数。
彷徨的蜗牛 2009-07-04
  • 打赏
  • 举报
回复
a%2,求的是余数,余数是一说明a不能整除2,说明是奇数。除了他们剩下的是能被2整除的啦
johnston678 2009-07-04
  • 打赏
  • 举报
回复
感觉没什么问题啊,
应该可以吧

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧