Computer >> Máy Tính >  >> Lập trình >> C#

Sự khác biệt giữa | và || toán tử trong c #?

|| đượ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