Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử logic (Logical Operators) trong C++

Khái niệm toán tử logic đơn giản. Chúng cho phép chương trình quyết định dựa trên nhiều điều kiện. Mỗi toán hạng coi như điều kiện đánh giá thành true/false. Giá trị điều kiện dùng để xác định giá trị tổng thể của nhóm op1 operator op2 hoặc !op1.

Toán tử logic OR (||) trả về true nếu một hoặc cả hai toán hạng true, ngược lại false. Toán hạng chuyển ngầm sang bool trước đánh giá, kết quả kiểu bool. || kết hợp trái sang phải. Toán hạng không cần cùng kiểu nhưng phải kiểu nguyên hoặc con trỏ. Thường là biểu thức quan hệ/bằng nhau.

Toán hạng đầu đánh giá hoàn toàn trước khi tiếp tục. Toán hạng thứ hai chỉ đánh giá nếu toán hạng đầu là false (0). Loại bỏ đánh giá thừa khi biểu thức OR đã true.

Toán tử logic AND (&&) trả về true nếu cả hai true, ngược lại false. Toán hạng chuyển ngầm sang bool, kết quả bool. && kết hợp trái sang phải. Toán hạng không cần cùng kiểu nhưng phải nguyên/con trỏ. Thường là biểu thức quan hệ/bằng nhau.

Toán hạng đầu đánh giá hoàn toàn trước. Toán hạng thứ hai chỉ đánh giá nếu toán hạng đầu là true (khác 0). Loại bỏ đánh giá thừa khi AND đã false.

Toán tử phủ định logic (!) đảo ngược ý nghĩa toán hạng. Toán hạng phải kiểu số học hoặc con trỏ. Chuyển ngầm sang bool. Kết quả true nếu toán hạng chuyển đổi là false; false nếu toán hạng chuyển đổi là true. Kết quả kiểu bool.

Ví dụ

#include <iostream>
using namespace std;
int main() {
    bool x = true, y = false;
    cout << (x || y) << endl;  // 1
    cout << (x && y) << endl;  // 0
    cout << (!x) << endl;      // 0
    return 0;
}

Kết quả

1
0
0

Giải thích: một trong hai false nên AND false, một true nên OR true, not của true(x) là false (0).