注意數值邊界
實例:
某商家規定會員可擁有的最多產品數量(防止囤積)會員預定過程如下:
登錄官網–>選擇產品–>設置預定數量–>提交–>校驗數量
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會做驗證,到不了服務器,那你錯了還有黑客存在呢^_^)