조건문

yeonhwan619·2022년 8월 23일

기록) JS 기초

목록 보기
3/10

조건문은 표현식의 평가를 통해 코드 진행에 분기를 만들어주어
프로그래밍의 논리적인 판단을 가능하게 한다.

• 자바스크립트의 조건문

if(조건식) {
	코드문
} else if(조건식2) {
	코드문
} else {
 	코드문 
}

자바스크립트에서 조건문을 실행하기 위해서는 다음과 같은 표현 형식을 사용한다. if 키워드는 '( )' 내의 조건식의 참과 거짓 (true / false)을 판단하여, 표현식의 평가결과가 true일 경우 '{ }' 코드 블록내에 있는 코드문을 순서대로 실행하며, false일 경우에는 else 코드 블록내에 있는 코드문을 실행한다. 명시된 if 조건문 외의 또 다른 조건을 추가하고 싶을 경우 else if 문을 추가로 작성해준다. if 문은 함수 코드 블록과는 다르게 어떠한 값을 반드시 return 할 필요는 없다.

else 문과 else if 문은 if 문을 사용할 때 반드시 사용할 필요는 없으며, else if 문은 사용할 수 있는 개수가 정해져 있지 않기 때문에 필요한 조건의 개수만큼 사용할 수 있다.

• if, else if, else 의 판단 순서

① if 조건식의 값이 true 인가?
Y ) if 코드 블록내의 코드문을 순서대로 실행한다.
N ) if 코드 블록내의 코드문을 실행하지 않고, if 문을 탈출한다.
② else if 문이 존재하는가?
Y ) else if 문의 조건식을 판단하여, true 이면 실행하고, false이면 탈출한다.
N ) 순서대로 다음 코드문을 실행한다.
③ else 문이 존재하는가?
Y ) else 문내의 코드문을 실행한 후, 모든 조건문을 탈출한다.
N ) 모든 조건문을 탈출한다.

if 문을 판별하는 조건식은 반드시 값으로 판단할 수 있는 표현식이어야 하며, 표현식의 값은 bolean 값이어야 한다. 만약, boolean 값으로 판별할 수 없는 표현식의 값이 할당될 경우, 자바스크립트는 암묵적으로 해당 표현식의 값을 boolean 값으로 타입 변환시켜 조건식을 판단한다.





• 만약 조건문을 판단하여 실행시킬 코드문이 한 줄이라면 '{ }'를 생략할 수 있다.

let a = 1;
let b = 3;
if(a < b) console.log('a < b');
else if(a > b) console.log('a > b');

• if, else if, else 조건문은 삼항조건연산자(' ? : ')를 통해 바꿔쓸 수 있다.

let a = 1;
let b = 3;
a < b ? console.log('a < b') : console.log('a > b');

삼항조건연산자는 조건문을 통해 표현식처럼 값을 도출하고 싶을 때 사용한다.

let result;
let num = 27
result = num % 3 ? '3의 배수가 아님' : '3의 배수';
// 3의 배수는 나머지가 0이 된다. 이때 0은 falsy 값으로, false로 평가된다.

• 패턴이 명확한 조건의 판단을 위해서는 if문 대신 switch - case 문을 사용할 수 있다.

switch(조건식){
  case 표현식1:
    코드문;
    break;
  case 표현식2:
    코드문;
    break;
  case 표현식3:
    코드문;
    break;
    .
    .
    .
  default:
    코드문;
}

switch 문의 조건 판단은 if, else if, else 의 논리판단 과정과 비슷하지만, 패턴의 판단에 용이하게 사용할 수 있다. switch 문의 조건식에 할당 되는 표현식(값)이 각 case 키워드에 해당하는 표현식의 값과 일치할 때, 각 case 문에 적혀있는 코드문을 실행한다. 특징적으로, break 키워드를 반드시 작성해주어야 하는데 break 키워드를 작성하지 않을 경우, 모든 케이스를 순서대로 전부 통과한뒤에야 switch 문이 종료되기 때문이다. break 키워드를 만나면 스위치문은 즉시 switch 문을 탈출한다.

defualt 키워드를 작성함으로써, case에 해당하지 않는 모든 값에 대한 실행문을 설정할 수 있다.


참조) Javascript DeepDive

profile

0개의 댓글