黑马程序员技术交流社区

标题: 不能发生的事 [打印本页]

作者: 2015黑马之路    时间: 2015-4-10 11:51
标题: 不能发生的事
如下代码 ,请填空,使程序输出"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.         }
复制代码




作者: 2015黑马之路    时间: 2015-4-10 11:52
自己顶一下啊
作者: 若果每天都努力    时间: 2015-4-10 11:58
作为个把基础班上完的我表示看不懂你的代码?这是干嘛的?
作者: fantacyleo    时间: 2015-4-10 12:01
Integer.MIN_VALUE
作者: 煎饼果子    时间: 2015-4-10 12:12
看不懂!
作者: Searching    时间: 2015-4-10 12:15
确实是Integer.MIN_VALUE
作者: 天若有晴    时间: 2015-4-10 12:52
为了黑马币而来
作者: windform    时间: 2015-4-10 13:21
最接近0的正数吧 0.000000
作者: 1017161726    时间: 2015-4-10 14:33
这确实是不能发生的事吧。逻辑上讲,两边不会同时为TRUE。就相当于:(num<0 && num>=0)
作者: 胡几手    时间: 2015-4-10 15:01
有点神奇。
作者: xlunaer    时间: 2015-4-10 17:35
看API文档,查Math.abs() 方法介绍,有下面一段话:注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表示的最小负 int 值),那么结果与该值相同且为负。 ,所以若num = Integer.MIN_VALUE,这样,就满足num == Math.abs(num)的条件了。PS:题目有点拐
作者: 黑色救护车    时间: 2015-4-10 18:21
学习了~~
作者: kitboxer    时间: 2015-4-10 18:54
就知道这个数得是边界数
作者: 2015黑马之路    时间: 2015-4-10 20:29
xlunaer 发表于 2015-4-10 17:35
看API文档,查Math.abs() 方法介绍,有下面一段话:注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表 ...

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


赞一个
作者: thoris    时间: 2015-4-10 23:03
有意思,溢出的时候返回原值。
作者: sisel    时间: 2015-4-10 23:59
Math.abs(Integer.MIN_VALUE) >0xffff ffff ffff ffff 的绝对值无法用int表示,因为最大的int是0x7fff ffff ffff ffff 绝对值比它小1,这是特例
作者: 无声风铃    时间: 2015-4-11 09:08
看过  有待练习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2