首页 > 编程语言 > 详细

java边界陷阱

时间:2016-01-09 12:27:13      阅读:221      评论:0      收藏:0      [点我收藏+]

某商家生成的电子产品很畅销,需要提前30天预订才能抢到手,同时还规定了一个会员可拥有的最多产品数量,目的是防止囤积的货物被肆意加价,于是后台的代码如下

public class Client{

public final static int LIMIT = 2000;

puiblic static void main(String[] args){

  int cur =1000;

  Scanner input = new Scanner(System.in);

  while(input.hasNextInt()){

    int order = input.nextInt();

   if(order>0 && order+cur<=LIMIT){

    System.out.println("你已经成功预订了"+order+"个产品");

  }else{

  System.out.println("超过极限,预订失败");

}

 

  }

 

}

 

}

这段代码很简单,我们来测试一下:

输入800,结果如下

你已经成功预订了800个产品

这里是没问题,再测一次:

2147483647

结果如下

你已经成功预订了2147483647个产品

看到没,这个数字远远超过了2000的极限,但是还是成功了,一句话可归结其原因,数字边界检验条件失效

 

java边界陷阱

原文:http://www.cnblogs.com/evall/p/5115755.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!