(& &) 또는 (||)를 사용하는 방법에 궁금합니다.및/또는 함께 자바 스크립트
은 둘 다 A와 B 중 1에 해당하는지 확인하려면 또는 C와 D가 모두 1
동일한 경우 나는 이것을 시도했다 :
if (a == 1 && b == 1 || c == 1 && d == 1)
{
//Do something
}
을하지만 그것은 작동하지 않습니다.
아는 사람 있습니까?
(& &) 또는 (||)를 사용하는 방법에 궁금합니다.및/또는 함께 자바 스크립트
은 둘 다 A와 B 중 1에 해당하는지 확인하려면 또는 C와 D가 모두 1
동일한 경우 나는 이것을 시도했다 :
if (a == 1 && b == 1 || c == 1 && d == 1)
{
//Do something
}
을하지만 그것은 작동하지 않습니다.
아는 사람 있습니까?
&&
precedes||
. ==
은 둘 다 앞에 나옵니다.
최소한의 예부터 나는 원하는 효과를 내지 못한 이유가 무엇인지 알 수 없습니다. 어떤 종류의 가치 유형이 있습니까? 자바 스크립트는 다소 명확하지 않은 type coercion을 가질 수 있습니다. 어쩌면 ===
과 비교해 보거나 명시 적으로 숫자로 변환하십시오.
사이드 노트 : 논리 연산자를 혼합 할 때 가독성을 위해 C 언어와 같은 많은 보풀 도구를 괄호 안에 넣는 것이 좋습니다.
Operator Precedence은 괄호 안에 표현식을 넣으면 무시할 수 있습니다.
if ((+a == 1 && +b == 1) || (+c == 1 && +d == 1)) // Use brackets to group them
{
// your code
}
이렇게하면 if(0&&0 || 1&&1)
같은 경우를 방지 할 수 있습니다.
&&는 이미 ||보다 우선 순위가 높기 때문에 추가 한 괄호는 중복됩니다. JS는 이미 그룹화 한 방식으로 표현식을 평가합니다. – nnnnnn
'0 && 0 || 1 && 1'이면? – NINCOMPOOP
'0 && 0 || 1 && 1'은'1 '로 평가되며, 이는 제 요점을 증명합니다. 그러나 거짓과 거짓 거짓 true && true'가 더 좋은 예입니다 (true를 반환합니다). 괄호를 추가한다고해서 어떤 차이가 발생하지는 않습니다. – nnnnnn
장소 몇 가지 추가 브래킷을 차별화 할 수있는 및 n 또는 조건
if ((a == 1 && b == 1) || (c == 1 && d == 1))
'&&'는 이미'||'보다 더 높은 우선 순위를 가지고 있기 때문에 괄호를 추가 할 필요가 없습니다. – nnnnnn
글쎄, 이제는 다름 아닌 다른 사람들에게 (David을 제외하고) 그들의 대답이 틀린 이유를 말하면서 나에게 그들에게 똑같은 기회를 주었다.
표시된 기존 코드는 이미 을 나타내야합니다.으로 표시됩니다. 그러나 그것은 가능하다 당신이 말할 때 :
"나는 A와 B 중 하나를 모두 1에 해당하는 경우 또는 C와 D가 모두 1에 해당하는지 확인하려면"
... 단어의 사용은 "중"일 다음 조건 중 하나에 해당하는 경우 검사 할 것을 의미 :
없는 경우 변수의 한 쌍의 1로 할하지만 돈 모두를 원하지 않는다. 4 개의 변수가 동시에 1이 될 수 있습니까?논리적 OR ||
연산자와는 달리, 당신은 AND &&
부분을 괄호를 추가해야한다는
if ((a == 1 && b == 1)^(c == 1 && d == 1)) {
참고 :
그렇다면, 즉 JS에서 ^
operator가 독점 OR 작업입니다 ^
이 더 높은 우선 순위를 가지므로 표현식의 (^
은 실제로는 비트 연산자이지만 사용하는 피연산자가 모두 부울이기 때문에 여기서는 효과가 있습니다.)
부울 값의 경우 모든 것을 숫자로 변환하는 비트 단위의 것 대신에'! =='XOR 연산자를 사용할 수 있습니다 ... – Bergi
@Bergi - "! == XOR 연산자"의 의미를 모르겠습니다. XOR을 AND와 OR의 조합으로 다시 작성할 수 있지만 피연산자를 반복해야하므로 결과가 길어집니다 (위의 점과 동일). 그리고이 경우에는 피연산자가 부울 (boolean)이기 때문에 bitwise XOR이 잘 작동합니다. 따라서 숫자로 변환하면 OK입니다. 전체 표현식의 결과는'0' 또는'1'이 될 것이고,'if() '당신이 단지 거짓이나 진실을 필요로하는 곳에 시험하십시오. – nnnnnn
진리표를 확인하십시오. "같지 않음"*은 "배타적 인"또는 "배타적 인 것"- 그렇다면 왜 XOR을위한 연산자가 비트 단위로 사용 되는가? – Bergi
if ((a == 1 && b == 1) || (c == 1 && d == 1)) {} –
(a와 b는 1과 같음) 또는 (c와 d = 1)을 의미합니까? OR : (a = 1 및 (b 또는 c = 1) 및 d = 1)? 그것은 분명하지 않다! –
이것은 대부분의 언어 btw의 경우 자바 스크립트 – sgroves