본문 바로가기
JS

Js의 조건문

by 개발자doc 2024. 4. 17.
목차
1. 조건문이란?
2. if문
3. if~else
4. switch
5. if와 switch
6. 어느 조건문을 사용하는 것이 좋은가?


1. 조건문이란?
  • 어떤 조건에 따라 다른 동작을 하도록 프로그램을을 제어하는 명령문
2. if문
  • "만약 ~라면"이라는 의미로 주어진 조건이 맞다면 블록 안에 명령문을 실행한다.
  • 조건이 맞지 않다면 명령을 실행하지 않는다.
//문법
if(조건문){
    //조건이 맞으면 실행할 코드
}

ex)
if(a<b){
	console.log("a는 b보다 작다.");
}

 

3. if ~else문
  • 단일 if문이 확장된 개념으로 여러 조건을 비교할 수 있는 명령문
  • 여러 조건 중 참인 조건을 찾으면 해당 조건에 맞는 코드를 실행하고 이후 조건을 실행하지 않음
//문법
if(조건1){
    //조건1이 맞으면 실행할 명령
}else if(조건2){
    //조건2가 맞으면 실행할 명령
}else{
    //모든 조건이 맞지 않으면 실행할 명령
}

if(a<b){
    console.log("a는 b보다 작다");
}else if(a>b){
    console.log("a는 b보다 크다");
}else{
    console.log("a와 b는 같다");
}

if문과 if ~else문은 거의 모든 프로그래밍언어에서 필수적으로 사용되기에 반드시 알아두어야 하는 제어문이다. 데이터 타입을 체크하거나 값을 비교하는 등 많은 상황에서 쓰인다. 

그런데 if문이 있는데 굳이 if ~else문을 사용해야 할까? 실행의 결과는 같을 수 있지만 컴퓨터 내부에서 동작하는 부분이 달라진다.

let a = 0;
let b = 10;

//if만 사용
if(a<b){
	console.log("a는 b보다 작다");
}
if(a>b){
	console.log("a는 b보다 크다");
}
if(a===b){
	console.log("a와 b는 같다");
}

//if else를 사용
if(a<b){
    console.log("a는 b보다 작다");
}else if(a>b){
    console.log("a는 b보다 크다");
}else{
    console.log("a와 b는 같다");
}

위 코드에서의  a는 b보다 작기 때문에 둘 다"a는 b보다 작다"는 결과를 출력한다. 하지만 if문만 사용했을 때는 a<b조건 이 외에는 거짓임에도 조건을 모두 판별한다. 즉 조건을 3번 확인한다. 반면 if ~else는 첫번째 조건부터 확인하여 맞는 조건을 찾게 되면 이후 조건은 판단하지 않기 때문에 불필요한 동작을 할 필요가 없다. 따라서 경우에 따라 다르겠지만 if ~else가 if만 사용했을 때보다 성능상 우수하다.

4. switch문
  • 주어진 패턴과 일치하는 경우를 확인하고 그에 맞는 동작을 수행하는 조건문
  • 각 case마다 break문을 추가해야 한다.
switch(패턴){
    case 패턴1:
        패턴1에 대한 실행코드
        break;
    case 패턴2:
        패턴1에 대한 실행코드
        break;
    case 패턴3:
        패턴1에 대한 실행코드
        break;
    default:
        위 패턴 모두 맞지 않을 시 수행하는 코드
}

ex)
switch(1){
    case 1:
        console.log("1번이 선택되었습니다.");
        break;
    case 2:
        console.log("2번이 선택되었습니다.");
        break;
    case 3:
        console.log("3번이 선택되었습니다.");
        break;
    default:
        console.log("모든 경우에 해당하지 않았습니다.");
}

//결과 => 1번이 선택되었습니다.

위 코드는 switch문에 대한 예다. 1이라는 패턴 값에 해당하는 case인 명령이 실행된 것이다. 그런데 break라는 것이 등장한다. 그 이유가 뭘까?

switch 조건문은 여러 case중 패턴과 맞는 case를 찾으면 해당 case의 코드를 실행하고 이후 모든 경우는 조건에 맞는 case로 판단하여 코드가 모두 실행된다. 그래서 하나의 case의 코드를 실행하고 다음 코드를 실행하지 않기 위해 조건문을 탈출하라는 의미로 break문을 사용한다.

6. 어느 조건문을 사용하는 것이 좋은가?

if와 switch 모두 조건문으로 특정한 조건에 따라 다른 코드를 실행시킨다. 그러나 if문을 사용하는 경우에 switch문으로 대체가 가능하지만 모든 switch가 사용되는 상황이 if로 대체될 수 있는 것은 아니다. 그렇다면 if만 사용하는 것이 좋은가?

아래는 각 조건문이 사용되는 경우를 작성한 것이다.

if switch
단일 조건검사나 여러 조건을 연결할 때

 조건에 따라 다르게 동작해야할 때

복잡한 조건을 검사할 때
하나의 조건만 만족할 때

특정 값에 따라 다르게 동작하는 경우

 

무조건 어느 것을 써야한다는 것은 없다. 경우에 따라 if문이 효율적이고 다른 경우에는 switch문에 효율적일 수 있다. 코드를 작성하면서 어느 조건문을 사용해야 하는 것이 좋은지 판단하여 작성해야 한다.

'JS' 카테고리의 다른 글

배열  (0) 2024.04.20
함수  (1) 2024.04.19
반복문  (2) 2024.04.18
데이터를 담는 그릇! 변수  (0) 2024.04.16
자바스크립트란?  (1) 2024.04.15