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 » Hàm Trả Về Giá Trị True Hoặc False Trong C++
-
Hàm Bool Trong C/C++ Là Gì? - Banhoituidap
-
Hàm Bool Là Hàm Gì Và Cách Sử Dụng Ra Sao? - Dạy Nhau Học
-
Kiểu Bool, Boolean Trong Lập Trình C/C++ (Code Ví Dụ) | TopDev
-
[Tự Học C++] Kiểu Boolean Trong C++ »
-
Toán Tử Logic Trong C++ Và Giá Trị True False
-
Kiểu Luận Lý Và Cơ Bản Về Câu điều Kiện If (Boolean And If Statements)
-
Hàm Bool Trong C++ Là Hàm Gì? - Cộng đồng C Việt
-
TRUE (Hàm TRUE) - Microsoft Support
-
[Lập Trình C++ Cơ Bản] Bài 4: Cấu Trúc Rẽ Nhánh - Viblo
-
Kiểu Bool Trong C++ | Codelearn
-
Hàm IF – Các Công Thức được Kết Hợp Với Nhau Và Tránh Các Rắc Rối
-
Kiểu Boolean Toán Tử So Sánh Toán Tử Logic
-
Kiểu Dữ Liệu Boolean Có Phạm Vi Giá Trị Là