조건문(Conditional)
if (조건 1) {
조건이 참이면 할 행위
} else if (조건 2) {
조건이 참이면 할 행위
} else (나머지/ 조건1,2가 아닌 모든 경우){
행위
}
반복문은 순서의 행위가 중요하다. 나이순으로 입장료를 매길 때, 가장 높은 나이순으로 내려가던가 가장 낮은 나이순으로 올라가든가 해야된다.
항상 삼중등호 사용 필수
조건문 안에 조건문(Nesting)
예시 : 비밀번호 입력받기(조건1: 6자 이상, 조건2: 공백 없도록)
조건 1: .length 매서드 사용, 조건2: .indexOf 매서드 사용 —> indexOf(‘ ’); —> 공백을 찾는 것, 공백이 없으면 -1이 뜰 것. 있으면 다른 수가 뜰 것.
const password = prompt(“비밀번호를 입력해주세요.”);
if(password.length >= 6) {
if(password.indexOf(‘ ’) === -1) {
console.log(“조건이 충족되었습니다.”);
} else {
console.log(“공백 없는 비밀번호로 수정해주세요.”);
}
} else {
console.log(“비밀번호 6글자 이상으로 수정해주세요.”);
}
Truth-y 값과 False-y 값 혹은 truthyness falseness
자바스크립트의 모든 값에는 고유 truthyness와 falseness가 있다.
단순히 참인지 거짓인지를 의미하는 것이 아닌(도덕적인 것이 아닌), 표면상 true와 false인 값을 말한다.
False-y
* false
* 0
* “” (공백)
* null
* undefined
* NaN
Truth-y
* 위 False-y를 제외한 모든 값이 truthy!
예시
const userInput = prompt(“아무거나 입력”);
if(userInput){
console.log(“Truthy”);
} else {
console.log(“Falsy!”);
}
논리연산자
AND(&&) —> 두 조건이 모두 참이어야 참
예시
1 <= 4 && ‘a’ === ‘a’ ;
9 > 10 && 9 >= 9;
‘abc’.length === 3 && 1 + 1 === 4;
활용(Nesting 조건문의 비밀번호 예시)
const password = prompt(“비밀번호를 입력해주세요.”);
if(password.length >= 6 && password.indexOf(‘ ’) === -1 ) {
console.log(“조건이 충족되었습니다.”);
} else {
console.log(“비밀번호 공백없이 6글자 이상으로 수정해주세요.”);
}
OR(||) —> 한 조건이 참이면 모두 참
예시
1 != 1 || 10 === 10
10/2 === 5 || null
0 || undefined
적용(조건문 예시 중 입장료 관련)
if(age >= 0 && age <5 || age >= 65 && age < 120){
console.log(“입장료 무료(아이, 노약자)”);
} else if(age > 5 && age <= 18){
console.log(“입장료 반값(학생)”);
} else if(age > 18 && age < 65) {
console.log(“입장료 정상값(성인)”);
} else {
console.log(“유효한 나이를 입력하세요.”);
}
NOT(!) —> false면 true 반환, true면 false 반환
예시
!null
!(0 === 0)
!(3 <= 4)
적용1. (입력칸 공백 시 —> 공백은 falsy이므로)
let nickName = prompt(“닉네임을 입력하세요”);
if(!nickName) {
prompt(“닉네임을 입력해야 다음 단계로 넘어갈 수 있습니다.”);
}
적용2. 할인대상 확인
if(!(age >= 0 && age <5 || age >= 65 && age < 120)){
console.log(“할인, 무료 적용 연령이 아닙니다.”);
} else {
console.log(“할인, 무료 적용 연령이 맞습니다.”);
}
Switch문 —> 중요도, 활용도 철저히 낮음.
예시
const day = 2;
switch(day){
case 1:
console.log(“Monday”);
break;
case 2:
console.log(“Tuesday”);
break;
case 3:
console.log(“Wednesday”);
break;
default:
console.log(“Invalid Number”);
}
—> 결과값 = Tuesday
—> 스위치는 결과적으로 일치하는 값을 찾는데, day의 값인 2와 case2가 일치되었고 break을 만나 중단한다. break이 없으면 끝까지 갈 것이다.