Tìm hiểu về các toán tử C # thực hiện các phép toán phủ định lôgic, kết hợp (AND), và bao gồm và riêng biệt (OR) với các toán hạng Boolean.
Bạn đang xem : c # bool true false
Toán tử logic Boolean (tham chiếu C #)
Trong bài viết này
Các toán tử sau thực hiện các phép toán logic với các toán hạng bool :
Đối với các toán hạng của kiểu số tích phân , các toán tử & amp;
, |
và ^
thực hiện theo bitwise các phép toán logic. Để biết thêm thông tin, hãy xem Toán tử Bitwise và shift .
Toán tử phủ định logic!
Toán tử tiền tố một ngôi !
tính toán phủ định logic của toán hạng của nó. Nghĩa là, nó tạo ra true
, nếu toán hạng cho giá trị false
và false
, nếu toán hạng cho giá trị true code >:
bool đã truyền = false;
Console.WriteLine (! Qua); // đầu ra: True
Console.WriteLine (! True); // đầu ra: Sai
Bắt đầu bằng C # 8.0, toán tử postfix một ngôi !
là toán tử null-tha thứ .
Toán tử logic AND & amp;
Toán tử & amp;
tính toán logic AND của các toán hạng của nó. Kết quả của x & amp; y
là true
nếu cả x
và y
đều đánh giá là true
. Nếu không, kết quả là false
.
Toán tử & amp;
đánh giá cả hai toán hạng ngay cả khi toán hạng bên trái đánh giá thành false
, do đó kết quả hoạt động là false
bất kể giá trị của toán hạng bên phải.
Trong ví dụ sau, toán hạng bên phải của toán tử & amp;
là một lệnh gọi phương thức, được thực hiện bất kể giá trị của toán hạng bên trái:
bool SecondOperand ()
{
Console.WriteLine ("Toán hạng thứ hai được ước lượng.");
trả về true;
}
bool a = false & amp; SecondOperand ();
Console.WriteLine (a);
// Đầu ra:
// Toán hạng thứ hai được ước lượng.
// Sai
bool b = true & amp; SecondOperand ();
Console.WriteLine (b);
// Đầu ra:
// Toán hạng thứ hai được ước lượng.
// ĐÚNG VẬY
Toán tử lôgic AND có điều kiện & amp; & amp;
cũng tính toán lôgic AND của các toán hạng của nó, nhưng không đánh giá toán hạng bên phải nếu bên trái toán hạng cho kết quả là false
.
Đối với các toán hạng của kiểu số tích phân , toán tử & amp;
sẽ tính toán logic bitwise AND của các toán hạng của nó. Toán tử & amp;
một bậc là địa chỉ của nhà điều hành .
Toán tử OR loại trừ logic ^
Toán tử ^
tính toán OR loại trừ logic, còn được gọi là XOR logic, của các toán hạng của nó. Kết quả của x ^ y
là true
nếu x
cho kết quả là true
và y
đánh giá thành false
hoặc x
cho kết quả là false
và y
cho kết quả là true
. Nếu không, kết quả là false
. Nghĩa là, đối với toán hạng bool
, toán tử ^
tính kết quả giống như toán tử bất đẳng thức ! =
.
Console.WriteLine (true ^ true); // đầu ra: Sai
Console.WriteLine (true ^ false); // đầu ra: True
Console.WriteLine (false ^ true); // đầu ra: True
Console.WriteLine (false ^ false); // đầu ra: Sai
Đối với các toán hạng của kiểu số tích phân , toán tử ^
sẽ tính toán OR loại trừ logic theo từng bit của các toán hạng của nó.
Toán tử HOẶC logic |
Toán tử |
tính toán OR logic của các toán hạng của nó. Kết quả của x | y
là true
nếu x
hoặc y
cho kết quả là true
. Nếu không, kết quả là false
.
Toán tử |
đánh giá cả hai toán hạng ngay cả khi toán hạng bên trái đánh giá thành true
, để kết quả hoạt động là true
bất kể giá trị của toán hạng bên phải là bao nhiêu.
Trong ví dụ sau, toán hạng bên phải của toán tử |
là một lệnh gọi phương thức, được thực hiện bất kể giá trị của toán hạng bên trái:
bool SecondOperand ()
{
Console.WriteLine ("Toán hạng thứ hai được ước lượng.");
trả về true;
}
bool a = true | SecondOperand ();
Console.WriteLine (a);
// Đầu ra:
// Toán hạng thứ hai được ước lượng.
// ĐÚNG VẬY
bool b = false | SecondOperand ();
Console.WriteLine (b);
// Đầu ra:
// Toán hạng thứ hai được ước lượng.
// ĐÚNG VẬY
Toán tử OR logic có điều kiện ||
cũng tính toán OR logic của các toán hạng của nó, nhưng không đánh giá toán hạng bên phải nếu toán hạng bên trái đánh giá thành true
.
Đối với các toán hạng của kiểu số tích phân , toán tử |
sẽ tính toán logic bitwise OR của các toán hạng của nó.
Toán tử AND lôgic có điều kiện & amp; & amp;
Toán tử logic AND có điều kiện & amp; & amp;
, còn được gọi là toán tử AND logic "ngắn mạch", tính toán AND logic của các toán hạng của nó. Kết quả của x & amp; & amp; y
là true
nếu cả x
và y
đều đánh giá là true
. Nếu không, kết quả là false
. Nếu x
cho kết quả là false
, thì y
không được đánh giá.
Trong ví dụ sau, toán hạng bên phải của toán tử & amp; & amp;
là một lệnh gọi phương thức, không được thực hiện nếu toán hạng bên trái cho giá trị false < / code>:
bool SecondOperand ()
{
Console.WriteLine ("Toán hạng thứ hai được ước lượng.");
trả về true;
}
bool a = false & amp; & amp; SecondOperand ();
Console.WriteLine (a);
// Đầu ra:
// Sai
bool b = true & amp; & amp; SecondOperand ();
Console.WriteLine (b);
// Đầu ra:
// Toán hạng thứ hai được ước lượng.
// ĐÚNG VẬY
Toán tử logic AND & amp;
cũng tính toán logic AND của các toán hạng của nó, nhưng luôn đánh giá cả hai toán hạng.
Toán tử OR logic có điều kiện ||
Toán tử OR logic có điều kiện ||
, còn được gọi là toán tử OR logic "ngắn mạch", tính toán OR logic của các toán hạng của nó. Kết quả của x || y
là true
nếu x
hoặc y
cho kết quả là true
. Nếu không, kết quả là false
. Nếu x
cho kết quả là true
, thì y
không được đánh giá.
Trong ví dụ sau, toán hạng bên phải của toán tử ||
là một lệnh gọi phương thức, không được thực hiện nếu toán hạng bên trái cho giá trị true code >:
bool SecondOperand ()
{
Console.WriteLine ("Toán hạng thứ hai được ước lượng.");
trả về true;
}
bool a = true || SecondOperand ();
Console.WriteLine (a);
// Đầu ra:
// ĐÚNG VẬY
bool b = false || SecondOperand ();
Console.WriteLine (b);
// Đầu ra:
// Toán hạng thứ hai được ước lượng.
// ĐÚNG VẬY
Toán tử OR logic |
cũng tính toán OR logic của các toán hạng của nó, nhưng luôn đánh giá cả hai toán hạng.
Các toán tử logic Boolean rỗng
Đối với các toán hạng bool?
, & amp;
(logic AND) và |
(logic HOẶC) các toán tử hỗ trợ logic ba giá trị như sau:
-
Toán tử
& amp;
chỉ tạo ratrue
nếu cả hai toán hạng của nó đều đánh giá thànhtrue
. Nếux
hoặcy
cho kết quả làfalse
,x & amp; y
tạo rafalse
(ngay cả khi toán hạng khác đánh giá thànhnull
). Nếu không, kết quả củax & amp; y
lànull
. -
Toán tử
|
chỉ tạo rafalse
khi cả hai toán hạng của nó đều đánh giá thànhfalse
. Nếux
hoặcy
cho kết quả làtrue
,x | y
tạo ratrue
(ngay cả khi toán hạng khác đánh giá thànhnull
). Ngược lại, kết quả củax | y
lànull
.
Bảng sau trình bày ngữ nghĩa đó:
x
y
x & amp; y
x | y
thật
thật
thật
thật
thật
sai
sai
thật
thật
vô giá trị
vô giá trị
thật
sai
thật
sai
thật
sai
sai
sai
sai
sai
vô giá trị
sai
vô giá trị
vô giá trị
thật
vô giá trị
thật
vô giá trị
sai
sai
vô giá trị
vô giá trị
vô giá trị
vô giá trị
vô giá trị
Hành vi của các toán tử đó khác với hành vi của toán tử điển hình với các loại giá trị có thể làm được. Thông thường, một toán tử được định nghĩa cho các toán hạng của một kiểu giá trị cũng có thể được sử dụng với các toán hạng của kiểu giá trị nullable tương ứng. Toán tử như vậy tạo ra null
nếu bất kỳ toán hạng nào của nó cho kết quả là null
. Tuy nhiên, các toán tử & amp;
và |
có thể tạo ra không phải null ngay cả khi một trong các toán hạng đánh giá thành null
. Để biết thêm thông tin về hành vi của toán tử với các loại giá trị vô hiệu, hãy xem phần Toán tử nâng lên trong bài viết Các loại giá trị vô hiệu .
Bạn cũng có thể sử dụng các toán tử !
và ^
với các toán hạng bool?
, như ví dụ sau cho thấy:
bool? test = null;
Hiển thị (! Kiểm tra); // đầu ra: null
Hiển thị (thử nghiệm ^ false); // đầu ra: null
Display (test ^ null); // đầu ra: null
Display (true ^ null); // đầu ra: null
void Display (bool? b) = & gt; Console.WriteLine (b là null? "Null": b.Value.ToString ());
Các toán tử logic có điều kiện & amp; & amp;
và ||
không hỗ trợ toán hạng bool?
.
Phép gán ghép
Đối với toán tử nhị phân op
, biểu thức gán ghép có dạng
x op = y
tương đương với
x = x op y
ngoại trừ rằng x
chỉ được đánh giá một lần.
Các toán tử & amp;
, |
và ^
hỗ trợ phép gán ghép, như ví dụ sau cho thấy:
bool test = true;
kiểm tra & amp; = false;
Console.WriteLine (thử nghiệm); // đầu ra: Sai
test | = true;
Console.WriteLine (thử nghiệm); // đầu ra: True
kiểm tra ^ = false;
Console.WriteLine (thử nghiệm); // đầu ra: True
Lưu ý
Các toán tử logic có điều kiện & amp; & amp;
và ||
không hỗ trợ phép gán ghép.
Mức ưu tiên của toán tử
Danh sách sau đây sắp xếp các toán tử logic bắt đầu từ mức độ ưu tiên cao nhất đến mức độ ưu tiên thấp nhất:
- Toán tử phủ định logic
!
- Toán tử logic AND
& amp;
- Toán tử HOẶC độc quyền lôgic
^
- Toán tử HOẶC logic
|
- Toán tử AND lôgic có điều kiện
& amp; & amp;
- Toán tử OR lôgic có điều kiện
||
Sử dụng dấu ngoặc đơn, ()
, để thay đổi thứ tự đánh giá theo mức độ ưu tiên của toán tử:
Console.WriteLine (true | true & amp; false); // đầu ra: True
Console.WriteLine ((true | true) & amp; false); // đầu ra: Sai
bool Toán hạng (tên chuỗi, giá trị bool)
{
Console.WriteLine ($ "Toán hạng {name} được ước lượng.");
giá trị trả về;
}
var byDefaultPrecedence = Toán hạng ("A", true) || Toán hạng ("B", true) & amp; & amp; Toán hạng ("C", sai);
Console.WriteLine (byDefaultPrecedence);
// Đầu ra:
// Toán hạng A được ước lượng.
// ĐÚNG VẬY
var changeOrder = (Toán hạng ("A", true) || Toán hạng ("B", true)) & amp; & amp; Toán hạng ("C", sai);
Console.WriteLine (changeOrder);
// Đầu ra:
// Toán hạng A được ước lượng.
// Toán hạng C được đánh giá.
// Sai
Để biết danh sách đầy đủ các toán tử C # được sắp xếp theo mức độ ưu tiên, hãy xem phần Quyền ưu tiên của toán tử trong bài viết các toán tử C # .
Khả năng quá tải của toán tử
Loại do người dùng xác định có thể quá tải !
, & amp;
, |
và toán tử ^
. Khi toán tử nhị phân bị nạp chồng, toán tử gán ghép tương ứng cũng được nạp chồng ngầm. Kiểu do người dùng xác định không thể nạp chồng toán tử gán ghép một cách rõ ràng.
Loại do người dùng xác định không thể nạp chồng các toán tử logic có điều kiện & amp; & amp;
và ||
. Tuy nhiên, nếu một loại do người dùng xác định sẽ quá tải các toán tử true và false và toán tử & amp;
hoặc |
theo một cách nhất định, thì & amp; & amp;
hoặc ||
tương ứng có thể được đánh giá cho các toán hạng của loại đó. Để biết thêm thông tin, hãy xem phần Toán tử logic có điều kiện do người dùng xác định trong phần đặc tả ngôn ngữ C # .
Đặc tả ngôn ngữ C #
Để biết thêm thông tin, hãy xem các phần sau của đặc tả ngôn ngữ C # :
Xem thêm
Xem thêm những thông tin liên quan đến chủ đề c # bool true false
5.4: Boolean Variables - Processing Tutorial
- Tác giả: The Coding Train
- Ngày đăng: 2015-07-17
- Đánh giá: 4 ⭐ ( 6007 lượt đánh giá )
- Khớp với kết quả tìm kiếm: This video covers having a variable of type boolean as it relates to conditional statements.
Support this channel on Patreon: https://patreon.com/codingtrain
Contact: https://twitter.com/shiffman
Send me your questions and coding challenges!: https://github.com/CodingTrain/Rainbow-Topics
Link to code on Github: https://github.com/CodingTrain/Rainbow-Code
Processing: http://processing.org
Processing Foundation: https://processingfoundation.org/
Learning Processing Book: http://learningprocessing.com/For More Processing Tutorials:
https://www.youtube.com/user/shiffman/playlists?view=50&sort=dd&shelf_id=2📄 Code of Conduct: https://github.com/CodingTrain/Code-of-Conduct
Boolean in C with Examples
- Tác giả: www.scaler.com
- Đánh giá: 4 ⭐ ( 6715 lượt đánh giá )
- Khớp với kết quả tìm kiếm: In C the terminology of boolean is associated with data type. In this article understand what is boolean, boolean data type in c and boolean variable in c with examples by Scaler Topics.
C++ Booleans
- Tác giả: www.w3schools.com
- Đánh giá: 4 ⭐ ( 6736 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Three ways to print booleans as 'True' or 'False' in C++
- Tác giả: raymii.org
- Đánh giá: 5 ⭐ ( 1210 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Using true and false in C
- Tác giả: stackoverflow.com
- Đánh giá: 4 ⭐ ( 4890 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ)
- Tác giả: topdev.vn
- Đánh giá: 5 ⭐ ( 2473 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Kiểu dữ liệu Boolean là một kiểu dữ liệu có chỉ có thể nhận một trong hai giá trị như đúng/sai (true/false, yes/no, 1/0) nhằm đại diện cho hai giá trị thật (truth value).
C# Bool Type: If True, False
- Tác giả: thedeveloperblog.com
- Đánh giá: 4 ⭐ ( 2988 lượt đánh giá )
- Khớp với kết quả tìm kiếm: These C# examples test the bool type, which holds true or false. A bool occupies 1 byte of memory. | TheDeveloperBlog.com
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình