Toán Tử Logic Trong C++ | CppDeveloper
Có thể bạn quan tâm
| Toán tử | ! && || |
| Có thể được thực hiện như là một hàm toàn cục không ? | Có |
| Có thể được thực hiện như là một hàm thành việc của lớp không ? | Có |
| Kiểu dữ liệu trả về | boolean |
Lưu ý: các toán tử nhị phân mặc định (không nạp chồng) sử dụng một thuật toán đánh giá ngắn mạch, điều này có nghĩa là chúng cố gắng bỏ qua việc đánh giá đối số bên phải nếu đối số bên trái đã đủ để xác định kết quả cuối cùng. Khi đối số bên trái của || là đúng, toàn bộ biểu thức cũng đúng, bất kể giá trị đối bên phải là như nào. Và khi đối số bên trái của && là sai, toàn bộ biểu thức cũng là sai, bất kể giá trị đối số bên phải là bao nhiêu. Điều này không quan trọng lắm nếu đối số là các biến hoặc các quan hệ đơn giản, nhưng nó sẽ là vấn đề khi chúng là lời gọi hàm.
Giả sử rằng chúng ta có hai hàm f1 () và f2 (), cả hai đều trả về bool. Trong biểu thức sau:
f1 () && f2 ()
việc hàm f2 () có được gọi hay không thì phụ thuộc vào kết quả của f1 ().
Vì toán tử nạp chồng sẽ không thể tạo ra sự phân biệt như vậy nên cả hai hàm trên sẽ cùng được gọi khi được sử dụng cùng nhau trong một biểu thức.
Ví dụ →
C++ #include <iostream> #include <cmath> using namespace std; class V { public: int vec[2]; V(int a0, int a1) { vec[0]=a0; vec[1]=a1; } bool operator&&(V &arg) { return abs(vec[0]) + abs(vec[1]) > 0 && abs(arg.vec[0]) + abs(arg.vec[1]) > 0; } }; bool operator!(V &v) { return v.vec[0] * v.vec[1] != 0; } int main(void) { V v1(4, 8), v2(3, 7); cout << (v1 && v2 ? "true" : "false") << endl; cout << (!v1 ? "true" : "false") << endl; return 0; }| 12345678910111213141516171819202122232425 | #include <iostream>#include <cmath> usingnamespacestd; classV{public:intvec[2];V(inta0,inta1){vec[0]=a0;vec[1]=a1;}booloperator&&(V &arg) { return abs(vec[0]) + abs(vec[1]) > 0 && abs(arg.vec[0]) + abs(arg.vec[1]) > 0;}}; booloperator!(V&v) { return v.vec[0] * v.vec[1] != 0;} intmain(void){Vv1(4,8),v2(3,7);cout<<(v1&& v2 ? "true" : "false") << endl;cout<<(!v1?"true":"false")<<endl;return0;} |
Toán tử ‘!’ thì trả về một giá trị phản ánh điều kiện:“Các vectơ bên trái và bên phải có ít nhất một phần tử khác không.”
Chương trình sẽ in ra hai dòng sau: C++ true true“Tất cả các phần tử của vectơ đều khác không.”
| 12 | truetrue |
Từ khóa » Toán Tử Boolean
-
Kiểu Dữ Liệu Boolean Và Các Toán Tử AND OR NOT Trong Python
-
Kiểu Boolean Toán Tử So Sánh Toán Tử Logic
-
Kiểu Dữ Liệu Boolean Và Các Toán Tử AND OR NOT Trong Python
-
Đại Số Boole – Wikipedia Tiếng Việt
-
Kiểu Dữ Liệu Boolean – Wikipedia Tiếng Việt
-
Tìm Kiếm Boolean Thực Sự Có ý Nghĩa Gì? - EYEWATED.COM
-
2.0 Boolean - Khóa Học C++
-
Ba Toán Tử Boolean Là Gì?
-
Kiểu Dữ Liệu Boolean
-
Kiểu Logic Boolean Trong Python - O₂ Education
-
1.1. Các định Dạng Số, Boolean Và Ký Tự — Deep AI KhanhBlog
-
Toán Tử Logic Trong C Và Giá Trị True False
-
Toán Tử So Sánh Và Logic Trong Python - TEK4
-
TOÁN TỬ BOOLEAN , NHƯ Tiếng Anh Là Gì - Trong Tiếng Anh Dịch
-
Hiểu Logic Boolean Trong Python 3
-
Kiểu Dữ Liệu Boolean Trong Python | How Kteam
-
Kiểu Bool, Boolean Trong Lập Trình C/C++ (Code Ví Dụ) - CodeCute
-
Các Toán Tử Logic Của Excel: Bằng, Không Bằng, Lớn Hơn, Nhỏ Hơn
-
[PDF] ĐẠI SỐ BOOLEAN VÀ MẠCH LOGIC