Mệnh đề bảo vệ
Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 38 trên 59.
Guard clause là các câu lệnh điều kiện ở đầu một phương thức, dùng để kiểm tra các điều kiện không hợp lệ và trả về sớm. Chúng giúp code gọn gàng, dễ đọc hơn bằng cách xử lý các trường hợp biên trước.
Hãy xem một phương thức không có mệnh đề bảo vệ:
public int divide(int num, int den) {
if (den != 0) {
if (num >= 0) {
return num / den;
} else {
return -1;
}
} else {
return -1;
}
}Cùng phương thức đó với các mệnh đề bảo vệ:
public int divide(int num, int den) {
if (den == 0) return -1;
if (num < 0) return -1;
return num / den;
}Sau khi chạy một trong hai đoạn code với divide(10, 2), kết quả là:
5
Thử thách
DễTạo một phương thức tên là validatePassword nhận một đối số:
- Một chuỗi (
password) cần xác thực
Phương thức này nên dùng các mệnh đề bảo vệ để xác thực mật khẩu và trả về một chuỗi thông báo dựa trên các quy tắc sau:
- Nếu password là null: trả về "Password cannot be null"
- Nếu password trống: trả về "Password cannot be empty"
- Nếu độ dài password nhỏ hơn 8: trả về "Password must be at least 8 characters"
- Nếu password có chứa khoảng trắng: trả về "Password cannot contain spaces"
- Nếu tất cả các bước kiểm tra đều đạt: trả về "Valid password"
Tự làm thử
import java.util.Scanner;
public class Main {
public static String validatePassword(String password) {
// Viết code của bạn ở đây
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
if (password.equals("null")) {
password = null;
}
System.out.println(validatePassword(password));
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Mảng đa chiều
Kiến thức cơ bản về mảng 2DTruy cập phần tử trong mảng 2DVòng lặp lồng nhau với mảng 2DÔn tập về mảng 2DPhép cộng và phép trừ ma trậnMảng không đềuMảng 3D trở lênCác mẫu thường gặp với mảng 2DÔn tập về mảng2HashMap phần 1
HashMap là gì?Khai báo HashMapTruy cập giá trịKiểm tra khóa có tồn tạiChỉnh sửa từ điểnÔn tập: HashMap3HashMap phần 2
Phương thức của HashMapDuyệt bằng keySet()Duyệt bằng entrySet()HashMap lồng nhauÔn tập: Quản lý kho hàngÔn tập: Thao tác với HashMap6Luồng điều khiển nâng cao
Câu lệnh nhãnBiểu thức switchSo khớp mẫuMệnh đề bảo vệÔn tập: luồng điều khiểnTự luyện tập: Trình biên dịch Java online