Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

อะไรคือความแตกต่างระหว่าง | และ || ตัวดำเนินการใน c #?


|| เรียกว่า ตรรกะ OR โอเปอเรเตอร์ และ | เรียกว่า ตรรกะระดับบิต OR แต่ความแตกต่างพื้นฐานระหว่างพวกเขาอยู่ในวิธีการดำเนินการ ไวยากรณ์สำหรับ || และ | เช่นเดียวกับต่อไปนี้ −

  • bool_exp1 || bool_exp2
  • bool_exp1 | bool_exp2
  • ตอนนี้ syntax ของ 1 และ 2 ดูคล้ายกันแต่วิธีดำเนินการต่างกันโดยสิ้นเชิง
  • ในคำสั่งแรก คำสั่งแรก bool_exp1 จะถูกดำเนินการ จากนั้นผลของนิพจน์นี้จะกำหนดการดำเนินการของคำสั่งอื่น
  • หากเป็นจริง OR จะเป็นจริง ดังนั้นจึงไม่สมเหตุสมผลที่จะดำเนินการคำสั่งอื่น
  • คำสั่ง bool_exp2 จะถูกดำเนินการก็ต่อเมื่อ bool_exp1 ส่งคืนการดำเนินการเท็จเท่านั้น
  • เรียกอีกอย่างว่าโอเปอเรเตอร์ไฟฟ้าลัดวงจรเพราะมันทำให้วงจร (คำสั่ง) ลัดวงจรโดยพิจารณาจากผลลัพธ์ของนิพจน์แรก
  • ตอนนี้ในกรณีของ | สิ่งที่แตกต่างกัน คอมไพเลอร์จะดำเนินการทั้งสองคำสั่ง กล่าวอีกนัยหนึ่ง คำสั่งทั้งสองจะถูกดำเนินการโดยไม่คำนึงถึงผลลัพธ์ของคำสั่งเดียว
  • เป็นวิธีที่ไม่มีประสิทธิภาพในการทำสิ่งต่างๆ เนื่องจากไม่สมเหตุสมผลที่จะดำเนินการคำสั่งอื่น หากข้อใดข้อหนึ่งเป็นจริง เนื่องจากผลลัพธ์ของ OR มีผลเฉพาะผลลัพธ์ที่ประเมินเป็น "เท็จ" และเป็นไปได้เมื่อทั้งสองข้อความเป็นเท็จ

ตรรกะหรือ

ตัวอย่าง

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;
      }
   }
}

ผลลัพธ์

Condition 1 executed
Logical OR If Condition Executed

ตรรกะระดับบิตหรือ

ตัวอย่าง

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;
      }
   }
}

ผลลัพธ์

Condition 1 executed
Condition 2 executed
Logical OR If Condition Executed