4.논리연산
논리 연산자는 조건문을 좀 더 간결하고 다양한 방법으로 구사할 수 있도록 도와준다.
&&(그리고 라는 뜻을 가지고 있다)
&&는 좌항과 우항이 모두 참(true)일 때 참이된다.
다음 예제를 보자. 결과는 1이다. &&의 좌우항이 모두 true인 것은 첫번째 조건문 밖에 없기 때문이다.
이러한 논리 연산자를 and 연산자라고 한다.
여러게의boolean을 하나의boolean값으로 결과를 보이는 것
if(true && true){ //true 출력가능
alert(1);
}
if(true && false){//false 불 출력가능
alert(2);
}
if(false && true){//false 불 출력가능
alert(3);
}
if(false && false){//false 출력가능
alert(4);
}
논리 연산자를 활용한 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <script> var id = prompt('아이디를 입력해주세요.'); var password = prompt('비밀번호를 입력해주세요.'); // 조건이 두개가 존재 한다. if(id=='egoing' && password==='111111'){ //좌항 우항 값이 true여야 조건에 만족한다 alert('로그인 하셨습니다.'+id+'님 반갑습니다.'); } else { alert('아이뒤가 일치하지안습니다.'); } </script> </body> </html> | cs |
덕분에 코드의 복잡성도 낮아졌다. &&는 아래와 같은 의미를 만든다.
"id의 값이 egoing이고 password의 값이 111111이면 참이다"
즉 && 연산자의 좌항과 우항이 모두 참일 때 전체가 참이 되는 것이다.
아이뒤 입력
비밀 번호입력
일치시 화면
불일치시 화면
||(이거아니면 저거(파이프))
'||'는 '||'의 좌우항 중에 하나라도 true라면 true가 되는 논리 연산자다.
기호는 통상 엔터키 위에 있는 원화표시 키를 쉬프트와 함께 누르면 입력된다. or 연산자라고 부른다.
다음 예를 보자. 결과는 1,2,3이 출력된다. 마지막 조건문의 '||'는 좌항과 우항이 모두 false이기 때문에 false가 된다.
||를 활용
id 값으로 egoing, k8805, sorialgi 중의 하나를 입력하면 '인증 했습니다'가 출력되고,
그 외의 값을 입력하면 '인증에 실패 했습니다.'를 출력하는 예제다.
<body>
<script>
id = prompt('아이디를 입력해주세요.');
// 밑에 3가지 조건중 하나라도 맞으면 true값이 된다 (조건 만족)
if(id==='egoing' || id==='k8805' || id==='sorialgi'){
alert('인증 했습니다.');
} else {
alert('인증에 실패 했습니다.');
}
</script>
</body>
다음 예제는 id 값으로 egoing, k8805, sorialgi 중의 하나를 사용하고
비밀번호는 111111을 입력하면 right 외의 경우에는 wrong를 출력하는 예다.(||와 && 혼합)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <script> id = prompt('아이디를 입력해주세요.'); password = prompt('비밀번호를 입력해주세요.'); if((id==='egoing' || id==='k8805' || id==='sorialgi') && password==='111111'){ //괄호를 활용하여 먼저 연산하고 그후 &&를 연산한다 alert('인증 했습니다.'); } else { alert('인증에 실패 했습니다.'); } </script> </body> </html> | cs |
or와 and를 혼합해서 사용하는 방법을 보여준다. id 값을 테스트 하는 구간을 괄호()로 묶었다. 사용자가 id의 값으로 egoing 비밀번호를 111111을 입력했다면 연산의 순서는 아래와 같이 된다.
- (id=="egoing" or id=="k8805" or id=="sorialgi") : true가 된다.
- password=='111111' : true가 된다.
- true(1항) and true(2항) : true가 된다.
id 비교를 할 때 괄호를 사용한 것은 사칙 연산을 할 때 괄호부터 계산하는 것과 같은 원리다.
!
'!'는 부정의 의미로, Boolean의 값을 역전시킨다.
true를 false로 false를 true로 만든다. not 연산자라고 부른다. 아래의 결과는 4다.
if(!true && !true){ //false
alert(1);
}
if(!true && !false){//false
alert(2);
}
if(!false && !true){//false
alert(3);
}
if(!false && !false){//true
alert(4);
}
5.Booklean의 대체재
조건문에 사용될 수 있는 데이터 형이 꼭 불린만 되는 것은 아니다.
관습적인 이유로 0는 false 0이 아닌 값은 true로 간주된다. 아래의 예제는 2를 출력한다.
1.
if(0){//실행안됨
alert(1)
}
2.
if(1){// 2출력
alert(2)
}
하지만 이렇게는 사용하지 않는 것이 좋다
기타 false로 간주되는 데이터 형
'생활코딩 JavaScript' 카테고리의 다른 글
함수-1함수란? 2.함수의 효용성 3.함수 입력4.함수쳘력5.다양한 함수 (0) | 2018.11.18 |
---|---|
반복문-1.반복문의 기본문법-while 2.반복조건 3.for문 4.반복문의 효용성 5.반복문의 제어 6.반복문의 중첩사용과 디버거 (0) | 2018.11.17 |
조건문-1.조건 문이란?(if,else)2.else,else if 3.조건문의 응용 (0) | 2018.11.16 |
비교 -1.연간자 2.비교연산자(== 과 ===) 3.===를 사용하자 4.부정과 부등호 (0) | 2018.11.16 |
변수 -1변수사용법 2변수의 효용 (0) | 2018.11.16 |