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 Logic Trong C
-
Toán Tử Logic Trong C Và Giá Trị True False
-
Toán Tử Logic Trong C | 64 Bài Học Lập Trình C Hay Nhất
-
Toán Tử Trong C - AICurious
-
Toán Tử Trong C - VietTuts
-
Toán Tử Logic, Toán Tử Trên Bit Và Toán Tử Gán Trong C++ - Góc Học IT
-
[Tự Học C++] Toán Tử Logical Trong C++ »
-
Toán Tử Trong C++
-
Toán Tử Quan Hệ, Logic, Bitwise, Misc Và độ ưu Tiên Toán Tử Trong C++
-
Kiểu Bool, Boolean Trong Lập Trình C/C++ (Code Ví Dụ) - CodeCute
-
Toán Tử Trong C | Ngôn Ngữ C Có Những Loại Toán Tử Nào?
-
Các Toán Tử Trong C (số Học - Gán - Quan Hệ -...) - Freetuts
-
Toán Tử - Độ Ưu Tiên Và Trật Tự Kết Hợp — Modern C++
-
Tổng Hợp Các Hàm Logic Trong Excel - Kế Toán Lê Ánh