Toán tử logic, phần 4
Thuộc phần Nền tảng cơ bản trong hành trình Java của Coddy. Bài học 26 trên 73.
Luật De Morgan là quy tắc giúp ta đơn giản hóa các biểu thức có NOT. Khi làm việc với biểu thức logic, đôi khi ta cần đơn giản hóa hoặc sắp xếp lại chúng.
Khi có not đứng trước hai điều kiện nối với nhau bằng and, bạn có thể tách thành hai phần riêng. and đổi thành or, và mỗi phần có một not riêng:
!(A && B) tương đương với (!A) || (!B)
Ví dụ:
// Kiểm tra xem một số có KHÔNG nằm trong khoảng từ 1 đến 10 không
int number = 15;
// Hai biểu thức (expression) này tương đương nhau:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
System.out.println(result1); // true
System.out.println(result2); // trueĐiều ngược lại cũng đúng: !(A || B) tương đương với (!A) && (!B)
Ví dụ:
// Kiểm tra xem một người KHÔNG (phải là học sinh hoặc đang có việc làm)
boolean isStudent = false;
boolean isEmployed = false;
// Hai biểu thức (expression) này tương đương nhau:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
System.out.println(result1); // true
System.out.println(result2); // trueThử thách
Người mớiBạn đang giúp một cửa hàng thú cưng tạo hệ thống xác định xem họ có thể bán thú cưng cho khách hàng hay không.
Khởi tạo các biến sau:
hasLicensevới giá trịtruehasSpacevới giá trịfalsehasExperiencevới giá trịtrue
Viết các biểu thức logic sau để xác định xem:
canSellRegularPet: Khách hàng cần có giấy phép HOẶC kinh nghiệm, VÀ phải có không giancanSellExoticPet: Khách hàng cần có CẢ giấy phép VÀ kinh nghiệm, VÀ phải có không giancannotSellAnyPet: Khách hàng KHÔNG có giấy phép VÀ KHÔNG có kinh nghiệm, HOẶC không có không gianresult:canSellRegularPetHOẶCcanSellExoticPetHOẶCcannotSellAnyPet
Gợi ý: Viết điều kiện mà yêu cầu mô tả, không phải giá trị mà biến tình cờ đang giữ. «Phải có không gian» → hasSpace; «không có không gian» → !hasSpace. Chỉ dùng ! khi yêu cầu trái ngược với điều mà tên biến nêu, chẳng hạn «KHÔNG có giấy phép» → !hasLicense.
Tự làm thử
public class Main {
public static void main(String[] args) {
// Khởi tạo các biến
// Tính các điều kiện
boolean canSellRegularPet =
boolean canSellExoticPet =
boolean cannotSellAnyPet =
boolean result =
// Đừng xóa các dòng bên dưới
System.out.println("Can sell regular pet: " + canSellRegularPet);
System.out.println("Can sell exotic pet: " + canSellExoticPet);
System.out.println("Cannot sell any pet: " + cannotSellAnyPet);
System.out.println("Result: " + result);
}
}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 Nền tảng cơ bản
4Toán tử phần 1
Toán tử số họcToán tử moduloTăng/giảmTăng/giảm sauPhép rút gọn số họcToán tử so sánhSo sánh chuỗi7Nhập xuất cơ bản
Các phương thức System.outĐịnh dạng đầu raLớp ScannerÔn tập: đến 120Ôn tập: đúng hay sai5Toán tử, phần 2
Toán tử logic, phần 1Toán tử logic, phần 2Ôn tập: logic cơ bảnToán tử logic, phần 3Toán tử logic, phần 411Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: mảng tíchÔn tập: mảng đảo ngượcTự luyện tập: Trình biên dịch Java online