01/10/2018, 10:06

Em giới hạn giá trị nhập cho biến bị lỗi mong các bác giúp em

Em giới hạn cân nặng của 1 con bò bằng do while, nhưng chưa hiểu vì sao chương trình chấp nhận giá trị sai mà em nhập, rồi cuối cùng chạy đến hàm tiếp theo. Mong được các bác hướng dẫn giải quyết ạ

 public void Nhaptt(){
      try {
        Scanner nhap =new Scanner(System.in);
        System.out.println("Hay nhap ma so cho con bo");
        String maso = nhap.nextLine();
        
        System.out.println("Hay nhap tuoi cua con bo");
        int tuoi = nhap.nextInt();
        
        do{
        System.out.println("Hay nhap can nang cua con bo");
        int cannang = nhap.nextInt();
            if(cannang < 200 && cannang > 300){
                System.out.println("1 con bo co can nang tu 200 kg den 300 kg, vui long nhap lai");
            }
       }while(cannang < 200 && cannang > 300);
        
      } catch (Exception e) { System.out.println("Không chấp nhận dạng dữ liệu bạn nhập vào"); }
    }
    
    public void Xuattt(){
        System.out.format("%s  %d  %d", maso , cannang , tuoi);
}
Tynk Huynk viết 12:15 ngày 01/10/2018

Làm gì có số vừa nhỏ 200 mà lớn hơn 300 ??? -> Sửa lại nếu giá nhập nhỏ hơn 200 hoặc lớn 300 thì ko chấp nhận

Bao Trung Tran viết 12:09 ngày 01/10/2018

Bạn đang dùng do while. Mặc định do while nó sẽ chạy ít nhất 1 lần. Cho nên bạn có nhập sai nó vẫn chạy mà chưa chảy vào biểu thức while."cannang < 200 && cannang > 300. Cái này ko rõ lắm. Theo mình biết k có số đồng thời nhỏ hơn 200 và lớn hơn 300 thì phải

Tien Tran viết 12:14 ngày 01/10/2018

bạn ra điều kiện sai rồi. Phải là ‘cannang>200 && cannang<300’. Nên bạn nhập bất cứ giá trị nào ngoài khoảng 200-300 đều là đúng cả nên chương trình chấp nhận giá trị sai mà bạnnhập

Bài liên quan
0