여러개 중 하나라도 true면 true 즉, 모든 값이 false 일때만 false를 반환함.
예시
: 스티브 잡스는 한국인이거나 OR, 남자이다.
: true이다. 스티브 잡스는 남자가 맞기에 참이된다.
평가
: OR는 첫번째 true를 발견하는 즉시 평가를 멈춤.
: 스티브 잡스는 남자이거나 OR, 한국인 이거나, 군인 이거나.. 아무리 많은 정보를 뒤에 작성하여도 남자라는 정보가 true이므로 뒤에 설명은 읽어보지도 않고 참이라고 함.
a||b
: //a 나 b 중 true가 있으면 true
//OR
//이름이 Tom이거나, 성인이면 통과
const name = "Mike";
const age = 30;
if (name === 'Tom' || age > 19){
console.log('통과');
}
// 이름은 Tom이 아니지만 성인이기에 통과함.
모든값이 true면 true 즉, 하나라도 false면 false를 반환
예시
: 스티브 잡스는 한국인이고 AND, 남자이다.
: false이다. 두 조건 중 스티브 잡스는 한국인이 아니기에 거짓이 됨.
평가
: AND는 첫번째 false를 발견하는 즉시 평가를 멈춤.
: 스티브 잡스는 남자이고 AND, 한국인이며,군인인 동시에.. 마찬가지로 아무리 뒤에 많이 작성해도 한국인이라는 것에서 이미 거짓이다. 첫번째 거짓인 한국인까지만 평가하고 이후 평가는 무시함.
a && b
: //a 와 b 둘 다 true면 true
// AND
// 이름이 Mike 이고, 성인이면 통과
const name = "Mike";
const age = 30;
if(name === 'Mike' && age > 19){
console.log('통과');
}else {
console.log('돌아가');
}
//해당 조건식에서 이름이 Mike고 나이가 19세 이상이므로 통과 만약 이름이나 나이 둘중 하나라도 조건이 다르면 돌아가라는 결과가 나옴.
true면 false, false면 true를 반환.
// NOT
// 나이를 입력받아 성인이 아니면 돌아가는 프로그램...
const age = prompt('나이가..?')
const isAdult = age > 19;
if(!isAdult){
console.log('돌아가')
}
// 19이하를 입력하면 돌아가 출력
운전면허가 있고 시력이 좋은 여군을 뽑는 프로그램을 작성해야 하는 경우 운전면허가 있는 군인이 전체 군인의 80%, 시력이 좋은 군인이 전체 군인의 60% 여군은 전체군인의 7%라고 가정했을 시
-> 여군인데 시력이 좋고 운전면허가 있는 사람으로 조건을 작성하는 것이 좋음.
: 이유 = 첫번째 조건문으로 93%를 거를 수 있음.
: 더불어 이런 작업은 성능 최적화에 도움을 줌.
비교 연산자에도 우선순위가 존재함.
AND가 OR보다 높음.
//해당 코드는 조건식에 조건이 남자도 아니고, 이름이 Mike도 아닌데 결과로 통과가 나왔다.
//이는 AND가 OR보다 우선순위가 높아 먼저 평가 되었기 때문
//gender === 'M' && name === 'Mike'가 먼저 평가됨.
//이후 윗줄에서 나온 결과와 || isAdult가 평가가되어 어른임이 맞으니 true값이 나와 ture가 되는 것
const gender = 'F';
const name = 'Jane';
const isAdult = true;
//의도 하는 것처럼 코드를 수정하려면
//if(gender === 'M' && (name === 'Mike' || isAdult)) 해당 코드를 이렇게 수정해야함.
if(gender === 'M' && name === 'Mike' || isAdult) {
console.log('통과')
} else {
console.log('돌아가.')
}
이 글을 유튜브 코딩앙마 채널의 영상내용을 정리한 것입니다.
코딩앙마