作者:Max_coffee | 来源:互联网 | 2023-05-16 07:26
注意数值边界
实例:
某商家规定会员可拥有的最多产品数量(防止囤积)会员预定过程如下:
登录官网–>选择产品–>设置预定数量–>提交–>校验数量
public class Demo1 {
public static final int LIMIT=2000;
public static void main(String[] args) {
int cur=1000;
Scanner input = new Scanner(System.in);
System.out.println("请输入需要预定数量:");
while(input.hasNextInt()){
int order = input.nextInt();
if(order>0&&order+cur<=LIMIT){
System.out.println("成功预定"+order);
}
}
}
}
在这里输入一般的数字没有问题,但当你输入2147483647,随便加上1就变成了负数(数值溢出),当然就小于LIMIT,就会验证通过(没错跟你想的一样就是int的最大值
,你也许会想那个客户这么机智会输入而且一般js会做验证,到不了服务器,那你错了还有黑客存在呢^_^)