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; , | ^ 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 false , nếu toán hạng cho giá trị true :

  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 true nếu cả x 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 true nếu x cho kết quả là true y đánh giá thành false hoặc x cho kết quả là false 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 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 true nếu cả x 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 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 :

  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) | (logic HOẶC) các toán tử hỗ trợ logic ba giá trị như sau:

  • Toán tử & amp; chỉ tạo ra true nếu cả hai toán hạng của nó đều đánh giá thành true . Nếu x hoặc y cho kết quả là false , x & amp; y tạo ra false (ngay cả khi toán hạng khác đánh giá thành null ). Nếu không, kết quả của x & amp; y null .

  • Toán tử | chỉ tạo ra false khi cả hai toán hạng của nó đều đánh giá thành false . Nếu x hoặc y cho kết quả là true , x | y tạo ra true (ngay cả khi toán hạng khác đánh giá thành null ). Ngược lại, kết quả của x | y 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; | 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ớ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; || 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; , | ^ 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; || 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; , | 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; || . 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

Xem Thêm  AWS Lambda là gì? Hàm Lambda với các ví dụ - hàm lambda là gì