Toán tử logic, phần 3
Thuộc phần Nền tảng cơ bản trong hành trình Java của Coddy. Bài học 25 trên 73.
Khi kiểm tra nhiều điều kiện, máy tính sẽ ngừng kiểm tra ngay khi xác định được kết quả cuối cùng (đây gọi là đánh giá ngắn mạch).
Ví dụ:
int x = 0;
int y = 5;
boolean result = x != 0 && y / x > 2;Ở đây, x bằng 0, vì vậy biểu thức y / x > 2 sẽ không được đánh giá. Nếu đảo ngược thứ tự:
boolean result = y / x > 2 && x != 0;Điều này sẽ gây ra lỗi vì y sẽ bị chia cho 0, phép tính này không hợp lệ trong toán học.
Kỹ thuật này dùng để tối ưu hóa việc đánh giá các biểu thức logic. Ví dụ:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);Trong ví dụ này, b < 2 và d < 10 sẽ không được đánh giá vì cả a > 0 và c < -5 đều sai.
Thử thách
Người mớiHãy tạo một chương trình để xác định xem hôm nay có phải là ngày thích hợp để sản xuất năng lượng bằng pin mặt trời hay không
Khởi tạo các biến sau:
isSunnyvới giá trị truewindSpeedvới giá trị 5.4temperaturevới giá trị 23solarPanelOutputvới giá trị 9isCloudyvới giá trị false
Tạo một biểu thức logic để kiểm tra TẤT CẢ các điều kiện sau:
- Trời nắng
- Tốc độ gió nhỏ hơn 10
- Sản lượng của pin mặt trời nhỏ hơn 15
- Nhiệt độ trên 20 HOẶC trời không có mây
Tự làm thử
public class Main {
public static void main(String[] args) {
// Khởi tạo các biến (variables)
// Thay từng giá trị giữ chỗ bên dưới bằng giá trị mà đề bài yêu cầu
boolean isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
boolean isCloudy = false;
// Biểu thức logic hoàn chỉnh
// Thay phần giữ chỗ bên dưới bằng một biểu thức (expression) kết hợp cả bốn điều kiện (conditions)
boolean result = false;
// Đừng xóa các dòng bên dưới
System.out.println("Checking conditions for solar energy production...");
System.out.println("1. Is it sunny? " + isSunny);
System.out.println("2. Is wind speed safe? " + (windSpeed < 10));
System.out.println("3. Can panels produce more? " + (solarPanelOutput < 15));
System.out.println("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
System.out.println("\nFinal result - Good day for solar energy production: " + 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