Study/JavaScript

조건문(4)__논리 연산자

더 멋진 세상을 꿈꾸는 개발자 2020. 4. 14. 16:59

조건문(4)__논리 연산자

논리연산자
조건문을 좀 더 간결하고 다양한 방법으로 구사할 수 있도록 도와준다.

&&

&&는 '그리고, and'의 의미를 갖는다.
&&는 좌항과 우항이 모두 참(true)일때 참이 된다.
다음 예제를 보자. 결과는 1이다.
&&의 좌우항이 모두 true인 것은 첫번 째 조건문밖에 없기 때문이다.
이러한 논리연산자를 "and연산자" 라고 한다.

if(ture && ture) {
    alert(1);
}
if(ture && false) {
    alert(2);
}
if(false && ture) {
    alert(3);
}

응용을 한다면 아래와 같다.

<script>
    var id = prompt('아이디를 입력해주세요');
    var password = prompt('비밀번호를 입력해주세요');
    if(id == 'bonbon' && password == '1111'){
        alert('로그인 하셨습니다.'+id+'님 반갑습니다.');
    } else {
        alert('아이디 또는 비밀번호가 일치하지 않습니다.');
    }
</script>

||

||는 좌우항 중에 하나라도 ture라면 ture가 되는 논리 연산자.
or연산자라고 부른다.

다음 예를 보자. 결과는 1,2,3이 출력된다.

if(ture || ture) {
    alert(1);
}
if(ture || false) {
    alert(2);
}
if(false || ture) {
    alert(3);
}
if(false || false) {
    alert(4);
}

응용을 해보자.

<script>
    var id = prompt('아이디를 입력해주세요');
    if(id == 'bonbon' || id == 'naver' || id =='google'){
        alert('인증 했습니다.'+id+'님 반갑습니다.');
    } else {
        alert('인증에 실패 했습니다.');
    }
</script>

자, 그렇다면 and와 or을 조합해보자.

<script>
    var id = prompt('아이디를 입력해주세요');
    var password = prompt('비밀번호를 입력해주세요');
    if((id === 'bonbon' || id === 'naver' || id ==='google') && password==='1111'){
        alert('인증 했습니다.'+id+'님 반갑습니다.');
    } else {
        alert('인증에 실패 했습니다.');
    }
</script>

*수학연산자처럼, 괄호부터 연산이 된다. *

!

앞서 언급했던 것처럼 !는 부정의 의미로, boolean의 값을 역전시킨다.
true를 false로, false를 true로 만든다. not 연산자라고 부른다.

아래의 결과는 4이다.

if(!ture && !ture) {
    alert(1);
}
if(!false && !true) {
    alert(2);
}
if(!true && !false) {
    alert(3);
}
if(!false && !false) {
    alert(4);
}