A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2015黑马之路 中级黑马   /  2015-4-10 11:51  /  743 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如下代码 ,请填空,使程序输出"Hello World!"
  1. public static void main(String[] args) {
  2.                 int num = __ ;
  3.                 if(        num < 0 && num == Math.abs(num) ){
  4.                         System.out.println("Hello World!");
  5.                 }
  6.         }
复制代码



18 个回复

倒序浏览
自己顶一下啊
回复 使用道具 举报

回帖奖励 +2

作为个把基础班上完的我表示看不懂你的代码?这是干嘛的?
回复 使用道具 举报
Integer.MIN_VALUE
回复 使用道具 举报 1 0
看不懂!
回复 使用道具 举报
确实是Integer.MIN_VALUE
回复 使用道具 举报
为了黑马币而来
回复 使用道具 举报
最接近0的正数吧 0.000000
回复 使用道具 举报
这确实是不能发生的事吧。逻辑上讲,两边不会同时为TRUE。就相当于:(num<0 && num>=0)
回复 使用道具 举报
有点神奇。
回复 使用道具 举报
看API文档,查Math.abs() 方法介绍,有下面一段话:注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表示的最小负 int 值),那么结果与该值相同且为负。 ,所以若num = Integer.MIN_VALUE,这样,就满足num == Math.abs(num)的条件了。PS:题目有点拐
回复 使用道具 举报
学习了~~
回复 使用道具 举报
就知道这个数得是边界数
回复 使用道具 举报
xlunaer 发表于 2015-4-10 17:35
看API文档,查Math.abs() 方法介绍,有下面一段话:注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表 ...

不错,兄台好习惯,有问题直接查API,最原始的资料,本人就浅尝辄止了
回复 使用道具 举报
学习学习
回复 使用道具 举报
lf027 中级黑马 2015-4-10 23:00:10
16#
看API文档,查Math.abs() 方法介绍,有下面一段话:注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表示的最小负 int 值),那么结果与该值相同且为负。 ,所以若num = Integer.MIN_VALUE,这样,就满足num == Math.abs(num)的条件了。PS:题目有点拐


赞一个
回复 使用道具 举报 1 0
有意思,溢出的时候返回原值。
回复 使用道具 举报
sisel 中级黑马 2015-4-10 23:59:12
18#
Math.abs(Integer.MIN_VALUE) >0xffff ffff ffff ffff 的绝对值无法用int表示,因为最大的int是0x7fff ffff ffff ffff 绝对值比它小1,这是特例
回复 使用道具 举报
看过  有待练习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马