Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

차이점은 무엇입니까 | 그리고 || C#의 연산자?

<시간/>

|| 논리적 OR 이라고 합니다. 연산자 및 | 비트별 논리 OR이라고 합니다. 그러나 그들 사이의 기본적인 차이점은 실행 방식에 있습니다. || 구문 및 | 다음과 동일 -

  • bool_exp1 || bool_exp2
  • bool_exp1 | bool_exp2
  • 이제 1과 2의 구문은 서로 비슷해 보이지만 실행 방식은 완전히 다릅니다.
  • 첫 번째 명령문에서 첫 번째 bool_exp1이 실행되고 이 표현식의 결과가 다른 명령문의 실행을 결정합니다.
  • 참이면 OR이 참이므로 otherstatement를 실행하는 것은 의미가 없습니다.
  • bool_exp2 문은 bool_exp1이 잘못된 실행을 반환하는 경우에만 실행됩니다.
  • 첫 번째 표현식의 결과를 기준으로 회로(문)를 단락시키기 때문에 단락 연산자라고도 합니다.
  • 지금의 경우 | 상황이 다릅니다. 컴파일러는 두 명령문을 모두 실행합니다. 즉, 한 명령문의 결과에 관계없이 두 명령문이 모두 실행됩니다.
  • OR의 결과는 "거짓"으로 평가된 결과에만 유효하고 두 명령문이 모두 거짓일 때 가능하기 때문에 하나가 참이면 다른 명령문을 실행하는 것은 의미가 없기 때문에 일을 수행하는 비효율적인 방법입니다.

논리적 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

비트 논리 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
Condition 2 executed
Logical OR If Condition Executed