注意數值邊界

注意數值邊界
實例:
某商家規定會員可擁有的最多產品數量(防止囤積)會員預定過程如下:
登錄官網–>選擇產品–>設置預定數量–>提交–>校驗數量

 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會做驗證,到不了服務器,那你錯了還有黑客存在呢^_^)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章