30/09/2018, 19:47
[Java] Hỏi ý nghĩa câu lệnh!
Chào anh chị em và các bạn trên forum , em có đoạn code này dùng để khởi tạo Phương thức Nhập.
Khi khai báo biến n nếu em không khởi tạo giá trị thì bị báo lỗi
Còn nếu em khởi tạo int n = 0 ;
thì lại chạy được
em muốn hỏi là tại sao ở đó ta lại phải khởi tạo giá trị cho biến n ạ .
public static int nhap()
{
Scanner input = new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
Bài liên quan
Nếu biến n là variable của lớp thì ko cần khời tạo nó sẽ assign = 0.
Vì cậu dùng cấu trúc try-catch và kết thúc hàm cậu trả về n. Do đó cậu buộc phải khởi tạo biến n. Nếu phát sinh exception thì rõ ràng n vẫn chưa đc khởi tạo và đến lệnh return trả về 1 biến scalar chưa đc gán gía trị.
Em cám ơn anh rất nhiều ạ , em đã hiểu rồi ^^
cho em hỏi ké tại sau câu lệnh cuối là input.nextLine(); chứ không phải là input.nextInt(); và khi ta bỏ câu lệnh đó đi thì chương trình lặp vô hạn à.
Vì câu lệnh này là kiểm tra số nguyên, ví dụ
Nhập tuổi:
Đúng bạn phải gõ là 6 -> hàm nextInt nó capture được số 6.
Giờ bạn là nhập là Sáu -> nó nhẩy vào exception, nếu không có nextLine nó quay về đầu và lại gọi cái nextInt ra, lại tiếp tục Exception -> vô hạn. nextLine để clear cái input lỗi ý mà.
à hiểu rồi, cảm ơn bác nhé.