某商家生成的电子产品很畅销,需要提前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的极限,但是还是成功了,一句话可归结其原因,数字边界检验条件失效
原文:http://www.cnblogs.com/evall/p/5115755.html