Computer >> Máy Tính >  >> Lập trình >> C ++

Toán tử logic trong C ++


Khái niệm về toán tử logic rất đơn giản. Chúng cho phép một chương trình đưa ra quyết định dựa trên nhiều điều kiện. Mỗi toán hạng được coi là một điều kiện có thể được đánh giá thành giá trị đúng hoặc sai. Sau đó, giá trị của các điều kiện được sử dụng để xác định giá trị tổng thể của toán tử op1 op2 hoặc nhóm! Op1.

Toán tử OR logic (||) trả về giá trị boolean true nếu một hoặc cả hai toán hạng là true và trả về false nếu không. Các toán hạng được chuyển đổi ngầm định thành kiểu bool trước khi đánh giá và kết quả là kiểu bool. Hợp lý HOẶC có sự kết hợp từ trái sang phải. Các toán hạng của toán tử OR logic không cần cùng kiểu, nhưng chúng phải thuộc kiểu tích phân hoặc con trỏ. Các toán hạng thường là biểu thức quan hệ hoặc bình đẳng.

Toán hạng đầu tiên được đánh giá hoàn toàn và tất cả các hiệu ứng phụ được hoàn thành trước khi tiếp tục đánh giá biểu thức OR logic. Toán hạng thứ hai chỉ được đánh giá nếu toán hạng đầu tiên được đánh giá là false (0). Điều này giúp loại bỏ đánh giá không cần thiết của toán hạng thứ hai khi biểu thức logic OR là true.

Toán tử logic AND (&&) trả về giá trị boolean true nếu cả hai toán hạng đều đúng và trả về false nếu ngược lại. Các toán hạng được chuyển đổi ngầm định thành kiểu bool trước khi đánh giá và kết quả là kiểu bool. Logic AND có sự kết hợp từ trái sang phải. Các toán hạng của toán tử logic AND không cần cùng kiểu, nhưng chúng phải thuộc kiểu tích phân hoặc con trỏ. Các toán hạng thường là biểu thức quan hệ hoặc bình đẳng.

Toán hạng đầu tiên được đánh giá hoàn toàn và tất cả các hiệu ứng phụ được hoàn thành trước khi tiếp tục đánh giá biểu thức AND logic. Toán hạng thứ hai chỉ được đánh giá nếu toán hạng đầu tiên đánh giá là true (khác không). Việc đánh giá này loại bỏ đánh giá không cần thiết đối với toán hạng thứ hai khi biểu thức logic AND là sai.

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

Ví dụ

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

Đầu ra

Điều này sẽ cung cấp đầu ra -

1
0
0

Điều này là do một trong hai là sai, vì vậy và là sai, một là đúng nên hoặc đúng và không đúng (x) là sai, tức là, 0.