|| được gọi là logic HOẶC toán tử và | được gọi là lôgic theo bit OR nhưng sự khác biệt cơ bản giữa chúng là ở cách chúng được thực thi. Cú pháp cho || và | giống như sau -
- bool_exp1 || bool_exp2
- bool_exp1 | bool_exp2
- Giờ đây, cú pháp của 1 và 2 trông giống nhau nhưng cách chúng tạo ra hoàn toàn khác.
- Trong câu lệnh đầu tiên, bool_exp1 đầu tiên sẽ được thực thi và sau đó kết quả của biểu thức này quyết định việc thực thi câu lệnh kia.
- Nếu nó là true thì OR sẽ là true, do đó, việc thực thi câu nói quá sẽ không có ý nghĩa gì.
- Câu lệnh bool_exp2 được thực thi nếu và chỉ khi bool_exp1 trả về một lệnh sai.
- Nó còn được gọi là toán tử ngắn mạch vì nó rút ngắn mạch (câu lệnh) trên cơ sở kết quả của biểu thức đầu tiên.
- Bây giờ trong trường hợp của | mọi thứ khác nhau. Trình biên dịch sẽ thực thi cả hai câu lệnh, nói cách khác, cả hai câu lệnh đều được thực thi bất kể kết quả của một câu lệnh nào
- Đó là một cách làm không hiệu quả vì không có ý nghĩa gì khi thực hiện câu lệnh khác nếu câu đó là đúng vì kết quả của OR chỉ có hiệu quả đối với kết quả được đánh giá là "false" và có thể xảy ra khi cả hai câu đều sai.
logic HOẶC
Ví dụ
using System; namespace DemoApplication{ public class Program{ static void Main(string[] args){ if(Condition1() || Condition2()){ Console.WriteLine("Logical OR If Condition Executed"); } Console.ReadLine(); } static bool Condition1(){ Console.WriteLine("Condition 1 executed"); return true; } static bool Condition2(){ Console.WriteLine("Condition 2 executed"); return true; } } }
Đầu ra
Condition 1 executed Logical OR If Condition Executed
Lôgic theo chiều bit HOẶC
Ví dụ
using System; namespace DemoApplication{ public class Program{ static void Main(string[] args){ if(Condition1() | Condition2()){ Console.WriteLine("Logical OR If Condition Executed"); } Console.ReadLine(); } static bool Condition1(){ Console.WriteLine("Condition 1 executed"); return true; } static bool Condition2(){ Console.WriteLine("Condition 2 executed"); return true; } } }
Đầu ra
Condition 1 executed Condition 2 executed Logical OR If Condition Executed