답변:
그 내용의 MSDN C #을 문서로 혼란 비트입니다
&
및|
논리 연산자이며, 그&&
와는||
조건 연산자입니다. 나는 계속 전화&&
,||
및!
논리 연산자, 그래서 내가 잘못입니까?
아니; 당신은 맞습니다.
MSDN 설명서에는 작고 중요하지 않은 명명법 오류가 많이 있습니다. 나는 가능한 한 많은 것들을 꺼내려고 노력했지만, 그것이 잘못되고 오도되지 않는 경우에는 항상 시간을 현명하게 사용하는 것은 아닙니다. C # 기능의 이름에 대한 명확한 설명을 원하면 사양으로 이동하십시오.
따라서 관련 권한은 C # 사양이며 섹션 7.11에 나와 있습니다.
는
&
,^
및|
연산자는 논리 연산자라고합니다.
그런 다음 내장 논리 연산자를 정수, 열거, 부울 및 널 입력 가능 부울 논리 연산자로 세분화합니다. 사용자 정의 논리 연산자도 있습니다. 자세한 내용은 사양을 참조하십시오.
섹션 7.12에서
&&
및||
연산자는 조건부 논리 연산자라고합니다. 또한 "단락"논리 연산자라고도합니다.
따라서 모두 논리 연산자입니다. 그들 중 일부는 조건부 논리 연산자 입니다.
조건부 논리 연산자를 조건부로 만드는 것은 무엇입니까 ? 하나는 일반적으로 사용되는 때문입니다있는 그럴듯한 추측을 할 수 조건문 ( if
) 또는 조건식 ( ? :
). 실제 이유는 사양에 의해 제공됩니다.
&&
및||
연산자는 조건의 버전입니다&
및|
운영자 : 작업이x && y
작업에 해당하는x & y
것을 제외하고,y
경우에만 평가x
거짓이 아니다. 작업 이 true가 아닌 경우에만 평가되는 것을 제외하고 작업에x || y
해당 합니다.x | y
y
x
따라서 오른쪽 피연산자가 왼쪽 피연산자의 값에 따라 조건부로 평가 되므로 조건부 논리 연산자의 이름이 지정 됩니다.
조건부 논리 연산자 는 조건부 표현식에 대한 "구문 설탕" 이라는 점을 주목하면보다 생생하게 볼 수 있습니다 . x && y
간단하게 작성하는 쾌적한 방법 x ? y : false
, 그리고 x || y
간단하게 작성하는 쾌적한 방법입니다 x ? true : y
. 조건부 논리 표현식은 실제로 조건부 표현식입니다.
조건부 논리 연산자에는 사용자 정의 형식도 있으며 약간 까다 롭습니다. 자세한 내용은 사양을 참조하십시오.
이 주제에 관심이 있다면 더 읽어보십시오.
C #에서 이들은 모두 논리 연산자입니다.
int x = 0xABCD & 0xFF // x == 0xCD
&&
그리고 ||
"이라고 조건 들이 있기 때문에 논리 연산자" 단락.
bool someOtherCondition = true;
if (x == 0xEF && someOtherCondition) // someOtherCondition is not evaluated,
// because x == 0xEF is false
이 용어는 언어마다 다릅니다. C 및 C ++에서 &&
와 ||
단지이다 논리 연산자. 자바에서 &
와 |
라고 비트 연산자 C 및 C ++가로 분류하면서, 산술 연산자 .
점은이다 &
하고 |
있습니다 비트 단위 가와 수율 비트 문자열 값 적용되는 의미 연산자. 그리고 비트 단위는 프로그래머들에게 매우 사용되는 용어입니다.
예를 들어 0xff & 0x00 == 0x00
, while 0xff | 0x00 == 0xff
.
그리고 &&
및이 ||
조건에 적용 및 조건의 일반적인 값을 얻을 수있다; 즉, true
와 false
.
예를 들어 true && false == false
, while true || false == true
.
따라서 &&
및 ||
호출 할 수있는 조건 즉 프로그래머들 사이에서 일반적인 용어가 아니더라도, 연산자.
물론 모든 C, C ++, Java 및 C # 프로그래머는이 모든 것을 알고 있습니다. 그러나 "조건부 연산자"가 우리 프로그래머가 자주 사용하는 용어가 아니기 때문에 오해가 발생한 것 같습니다.
|
이 있으며||
, 많은 경우 프로그램 동작에 명백한 변화없이 상호 교환 할 수 있지만, 상호 교환 가능 하다고 가정하지 않는 것이 중요합니다 .