on
자바스크립트 AND, OR, NOT 논리연산자 정리, 우선순위
자바스크립트 AND, OR, NOT 논리연산자 정리, 우선순위
728x90
1. 논리 연산자 종류 및 설명
OR (||) : 여러 개 중 한 개라도 true면 true를 반환합니다. 즉 모든 값이 false일 경우에만 false를 반환합니다.
AND(&&) : 모든 값이 true면 treu를 반환합니다. 즉 하나라도 false면 false를 반환합니다.
NOT(!) : true와 false를 반대 값으로 바꿔줍니다. 즉 true 면 false, false면 true를 반환합니다.
OR
아이유는 여자 OR 개발자이다. -> true
-> OR 이기 때문에 두 가지 조건중 한 가지만 true여도 true를 반환합니다.
아이유는 여자 OR 개발자 OR 영국인 OR 군인이다. -> true
->OR 조건은 첫번째 true를 발견하면 뒤에 조건은 무시하고 true를 반환합니다.
AND
아이유는 개발자 AND 여자이다. -> false
-> AND 이기 떄문에 두 가지 조건 모두 만족해야지 true를 반환합니다.
아이유는 개발자 AND 여자 AND 가수 AND 한국인이다. -> false
-> AND 조건은 첫번째 false를 발견하면 뒤에 조건은 무시하고 false를 반환합니다.
위의 조건으로 보자면 논리 연산자를 사용할 경우 순서가 프로그램 성능에 영향을 미칩니다.
-> 키가 2미터 이상인 남자를 뽑는 경우 "남자"(50%) 보다 "2M이상"(5%)이 범위가 작아서 조건식에 먼저 위치시켜 95%를 첫 번째 평가에서 걸러낼 수 있기 때문에 성능이 향상됩니다.
2. 논리 연산자 예문
이름이 KIM 이거나, 성인이면 통과
(조건을 만족하여 통과)
const name = "kim"; const age = 30; if(name === 'tim' || age > 19){ console.log("통과"); }
이름이 KIM이고, 성인이면 통과
(조건을 불만족하여 중지)
const name = "kim"; const age = 30; if(name === 'tim' && age > 19){ console.log("통과"); } else { console.log("중지"); }
나이를 입력받아 성인인지 아닌지 판단
const age = prompt("나이를 입력하세요") const isAge = age >19; console.log(isAge); //true 나 false를 받음 if(!isAge){ console.log("성인이 아닙니다."); //isAge false일 경우 } else { console.log("성인입니다."); //isAge true일 경우 }
변수 age에 10살을 입력한 경우
변수 age에 30살을 입력한 경우
3. 논리 비교 연산자 우선순위
남자이고, 이름이 kim 이거나 성인인 경우 통과 (우선순위는 && -> || 순서)
const gender = "F"; const name = "kiki"; const isAdult = true; if(gender==="M" && name==="kim" || isAdult){ console.log("통과"); } else { console.log("중지"); }
이름과 설별이 거짓인데 통과로 나왔습니다. 이것은 비교 연산자의 우선순위 때문인데요((우선순위는 && -> || 순서))
따라서 아래와 같이 우선순위를 괄호로 조정 주어야 정상적인 결과를 얻을 수 있습니다.
const gender = "F"; const name = "kiki"; const isAdult = true; if(gender==="M" && (name==="kim" || isAdult)){ console.log("통과"); } else { console.log("중지");
728x90
반응형
그리드형
from http://bebeya.tistory.com/1518 by ccl(A) rewrite - 2021-09-06 15:27:06