Menu
CoddyTech

Toán tử logic phần 3

Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 23 trên 63.

Khi kiểm tra nhiều điều kiện, chương trình sẽ ngừng kiểm tra ngay khi biết được kết quả cuối cùng. Cách này gọi là đánh giá đoản mạch (short-circuit evaluation).

Ví dụ:

int x = 0;
int y = 5;
int result = (x != 0) && (y / x > 2);

Ở đây x bằng 0, vì vậy biểu thức sẽ không đánh giá y / x > 2. Nếu đảo ngược thứ tự:

int 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 không xác định trong C. Vì vậy, bạn nên suy nghĩ kỹ về các phép toán để viết code chính xác, hiệu quả và không có lỗi.

Kỹ thuật này giúp 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;
int 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ì a > 0 và c < -5 đều sai.

challenge icon

Thử thách

Dễ

Tạo một chương trình để xác định xem đây 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:

  • isSunny với giá trị 1 (đúng)
  • windSpeed với giá trị 5.4
  • temperature với giá trị 23
  • solarPanelOutput với giá trị 9
  • isCloudy với giá trị 0 (sai)

Tạo một biểu thức logic (logical expression) để 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 pin mặt trời nhỏ hơn 15
  • Nhiệt độ cao hơn 20 HOẶC trời không có mây

In ra "Good day for solar energy" nếu thỏa mãn tất cả các điều kiện, nếu không thì in ra "Not ideal for solar energy".

Tự làm thử

#include <stdio.h>

int main() {
    // Khởi tạo các biến
    int isSunny = 1;
    float windSpeed = 5.4;
    int temperature = 23;
    int solarPanelOutput = 9;
    int isCloudy = 0;
    
    // Tạo biểu thức logic
    int isGoodDay = 
    
    // Đừng thay đổi phần bên dưới
    if (isGoodDay) {
        printf("Good day for solar energy\n");
    } else {
        printf("Not ideal for solar energy\n");
    }
    
    return 0;
}
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch C online