if/else문을 활용하여 운전면허증 확인하는걸 만들어보겠다.
유럽기준 운전이 가능한 나이는 만18세 이상이다. 사람인지 아닌지, 운전이 가능한지, 불가능한지에 대해 if/else문을 작성할것이다.
const age = 19;
const isOldEnough = age >= 18;
const isOldEngough = age >= 18;은 불리언으로 답한다. 만 18세 이상이면 true, 미만이면 false.
그에 대한 결정은 이제 if문을 사용한다.
if(해야할 일) {
}
이렇게 작성하면 도니다. 이제 이 조건이 사실로 발혀지만 if문의 중괄호는 실행된다.
const age = 19;
const isOldEnough = age >= 18;
if (isOldEnough) {
console.log("Lisa can start driving license🚗");
}
위의 코드에서 if문의 isOldEnough 변수를 활용하여 참일때 조건문은 실행된다. 만일 거짓이면? 실행되지 않는다.
Lisa는 19세임으로 운전면허를 할 수 있다.
변수 값은 true여서 결과가 샐행되었다.
그렇다면 Lisa의 나이가 15이면?
const age = 15;
const isOldEnough = age >= 18;
if (isOldEnough) {
console.log("Lisa can start driving license🚗");
}
이번에는 출력이 없다.
const age = 19;
if (age >= 18) {
console.log("Lisa can start driving license🚗");
}
원래는 const isOldEnough = age >= 18;을 지운 뒤 if문 괄호 안에 age >= 18를 입력하여 값을 출력한다.
if/else문에서 else도 추가할 것이다.
const age = 15;
if (age >= 18) {
console.log("Lisa can start driving license🚗");
} else {
const yearsLeft = 18 - age;
console.log(`Lisa is too young. Wait another ${yearsLeft} years :(`);
}
저 코드에서 거짓을 나타내는 else를 추가하여 리사가 앞으로 운전하려면 몇년이 남았는지를 계산할 것이다.
그리고 그 뒤 값을 출력할 것이다. 위의 코드와 같이 적으면?
이렇게 값이 나온다.
else블록은 선택사항이다.
if/else문을 제어 구조(control structure)이라고 부른다.
if() {
} else {
}
이러한 구조를 활용하면 우리는 코드가 실행되는 방식을 더 잘 제어할 수 있다. if/else 문에서는 전체 코드는 선형 방식으로 실행되지 않는다. 따라서 JS가 실행되지 않는다. 실행되어야 하는 블록, 안되어야 하는 블록 처럼 코드를 제어 가능하다.
조건부 변수 만들기
중간 중간에 항상 console.log를 사용하는 건아니다.
const birthYear = 1998;
if (birthYear <= 2000) {
let century = 20;
} else {
let century = 21;
}
console.log(century);
선언하고 있는 century 변수를 내부에 액세스 할 수 없다. 만약 하게된다면 오른쪽과 같은 메시지가 뜬다. 오류가 생기지 않게 하려면 어떻게 해야할까? 바로 외부에 'century'를 정의하는 거다.
그렇게 하단의 코드처럼 외부에 let century를 정의하고 실행을 하면 값이 나온다.
const birthYear = 1998;
let century;
if (birthYear <= 2000) {
century = 20;
} else {
century = 21;
}
console.log(century);
어떻게 실행이 되는 것일까? 바로 조건부로 재할당되었기 때문이다. 그래서 원하는 값인 20이 실행될 수 있었다.
'🦎 JavaScript' 카테고리의 다른 글
[JS] 비교 연산자(Equality Operators) (0) | 2023.01.31 |
---|---|
[JS] 형 변환과 타입 강제 변환 (0) | 2023.01.30 |
[JS] 문자열 (0) | 2023.01.23 |
[JS] 다른 연산자의 우선순위 (0) | 2023.01.22 |
[JS] 기본 연산자 (0) | 2023.01.21 |