티스토리 뷰
조건문
Boolean
- 비교 연산의 결과로 참(true)이나 거짓(false)을 얻을 수 있음
- 불린(Boolean) : 숫자와 문자처럼 언어에서 제공하는 데이터 형
- 불린으로 올 수 있는 값은 true, false 두가지
- 불린은 조건문에서 핵심적인 역할 담당
조건문
- 주어진 조건에 따라서 애플리케이션을 다르게 동작하도록 하는 것
조건문의 문법
if
- 조건문은 if로 시작
- if(조건){실행문}
- 조건이 될 수 있는 값 : Boolean
- Boolean의 값이 true일 때 중괄호 구문이 실행
if(true){
alert('result : true');
} //결과 result : true
if(false){
alert('result : false');
} //결과 result : false
if(true){
alert(1);
alert(2);
alert(3);
alert(4);
}
alert(5); //결과 12345
if(false){
alert(1);
alert(2);
alert(3);
alert(4);
}
alert(5); //결과 5
- if문의 조건이 참이면 중괄호의 시작({)부터 중괄호의 끝(})까지의 구간이 실행
else
if(true){
alert(1);
} else {
alert(2);
} //결과 1
if(false){
alert(1);
} else {
alert(2);
} //결과 2
- if문의 조건이 true라면 if의 중괄호 구간이 실행
- false라면 else 이후의 중괄호 구간이 실행(else는 주어진 조건이 거짓일 때 실행할 구간을 정의)
else if
if(false){
alert(1);
} else if(true){
alert(2);
} else if(true){
alert(3);
} else {
alert(4);
} //결과 2
if(false){
alert(1);
} else if(false){
alert(2);
} else if(true){
alert(3);
} else {
alert(4);
} //결과 3
if(false){
alert(1);
} else if(false){
alert(2);
} else if(false){
alert(3);
} else {
alert(4);
} //결과 4
- else if는 좀 더 다양한 케이스의 조건을 검사할 수 있는 기회를 제공
- if나 else와는 다르게 여러개가 올 수 잇음
- else if의 모든 조건이 false라면 else가 실행
- else는 생략 가능
변수와 비교연산자
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<script>
id = prompt('아이디를 입력해주세요.')
if(id=='egoing'){
alert('아이디가 일치 합니다.')
} else {
alert('아이디가 일치하지 않습니다.')
}
</script>
</body>
</html>
- prompt() : 사용자가 입력한 값을 가져와서 id 변수의 값으로 대입(API, 함수)
조건문의 중첩
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<script>
id = prompt('아이디를 입력해주세요.');
if(id=='egoing'){
password = prompt('비밀번호를 입력해주세요.');
if(password==='111111'){
alert('인증 했습니다.');
} else {
alert('인증에 실패 했습니다.');
}
} else {
alert('인증에 실패 했습니다.');
}
</script>
</body>
</html>
논리 연산자
- 조건문을 좀 더 간결하고 다양한 방법으로 구사할 수 있도록 도와줌
&&
- &&는 좌항과 우항이 모두 참(true)일 때 참이 됨
- and 연산자
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<script>
id = prompt('아이디를 입력해주세요.');
password = prompt('비밀번호를 입력해주세요.');
if(id=='egoing' && password=='111111'){
alert('인증 했습니다.');
} else {
alert('인증에 실패 했습니다.');
}
</script>
</body>
</html>
||
- '||'는 '||' 좌우항 중에 하나라도 true라면 true가 되는 논리 연산자
- or 연산자
if(true || true){ //true
alert(1);
}
if(true || false){ //true
alert(2);
}
if(false || true){ //true
alert(3);
}
if(false || false){ //false
alert(4);
} //결과 123
id = prompt('아이디를 입력해주세요.');
if(id==='egoing' || id==='k8805' || id==='sorialgi'){
alert('인증 했습니다.');
} else {
alert('인증에 실패 했습니다.');
}
- id값으로 egoing, k8805, sorialgi 중의 하나를 입력하면 '인증 했습니다.' 출력, 그 외의 값을 입력하면 '인증에 실패 했습니다.' 출력
- 논리 연산자는 2개뿐 아니라 여러 개 사용 가능
id = prompt('아이디를 입력해주세요.');
password = prompt('비밀번호를 입력해주세요.');
if((id==='egoing' || id==='k8805' || id==='sorialgi') && password==='111111'){
alert('인증 했습니다.');
} else {
alert('인증에 실패 했습니다.');
}
- id 값으로 egoing, k8805, sorialgi 중의 하나를 사용하고 비밀번호는 111111을 입력하면 right 외의 경우에는 wrong을 출력
- or와 and를 혼합해서 사용
- id 값을 테스트 하는 구간을 괄호()로 묶음(사칙연산의 괄호부터 계산하는 것과 같은 원리)
!
- 부정의 의미 : Boolean의 값을 역전시킴(true => false, false => true)
- not연산자
if(!true && !true){
alert(1);
}
if(!false && !true){
alert(2);
}
if(!true && !false){
alert(3);
}
if(!false && !false){
alert(4); } //결과 4
Boolean의 대체제
01
if(0){
alert(1)
}
if(1){
alert(2)
} //결과 2
- 관습적으로 0은 false, 0이 아닌 값은 true로 간주
기타 false로 간주되는 데이터 형
if(!''){
alert('빈 문자열')
}
if(!undefined){
alert('undefined');
}
var a;
if(!a){
alert('값이 할당되지 않은 변수');
}
if(!null){
alert('null');
}
if(!NaN){
alert('NaN');
}