WEB/JS이론

조건식) if문과 switch문

찐망고 2023. 6. 23. 06:00

안녕하세요 찐망고입니다.

자바스크립트에서 가장 중요한 두가지는 조건문과 반복문이라고 생각하는데요

 

if문

조건문은 "만약 어떤 내용이 참(true)이라면 이걸실행해주고,

참이 아니라면 저걸 실행해 혹은 실행하지마" 라고

말하는 것과 같습니다.

이것을 if문과 if...else문이라고 하는데요

if문은 어떤 내용이 true일 때 특정 코드를 실행할 때 사용하고, 

if...else문은 어떤 내용이 true일 때 특정 코드를 실행하고, 만약  false라면 다른 코드를 실행할 때 사용합니다.

 

// if문 예시

const name = "제니퍼 애니스톤";
console.log(name.length)
if(name.length > 5) {
	console.log("제니퍼 애니스톤입니다.")
}

제니퍼 애니스톤은 공백을 포함하여 8글자 이므로 name.length는 8을 반환합니다.

name.length > 5는 true이므로 if문 중괄호 안에 있는 코드가 실행되어 콘솔에 메시지가 출력됩니다.

 

// if...else문 예시

const name = "제니퍼 애니스톤";
console.log(name.length)
if(name.length < 5) {
	console.log("실행되지 않습니다.")
} else {
	console.log("제니퍼 애니스톤입니다.")
}

if문과 비슷하지만 실행할 코드가 두개이고 두 실행코드 사이에 else키워드를 둡니다.

첫번째 실행코드 조건이 ture일때, 두번째 실행코드는 조건이 false일때 실행됩니다.

 

그러다보면 if...else문을 여러번 사용하여 조건식을 추가 할 수 있는데요

해당 조건에서 더 디테일한 조건식을 만드는 겁니다.

 

예를 들어 자격증 시험을 보는데 평균 합격은 60점이상 근데 단원별로 40점이상을 과락으로 지정해볼까요?

아 물론 100점 만점을 기준으로 두고여~

 

시험과목은 html, css, javascript

합격기준은 100점 만점 기준, 과목당 40점 이상, 전체 평균 60점 이상 합격입니다.

 

const html = 90;
const css = 80;
const js = 38;
const avg = (html + css + js) / 3;
let comment;

if (avg >= 60) {
    comment = `평균 ${avg}점 합격`
} else {
    comment = `평균 ${avg}점 불합격`
}

// 기본 if...else구문에서 각각의 과락을 체크합니다

if (avg >= 60) {
	if(html > 40 && css > 40 && js > 40) {
        comment = `과목이 각각 ${html},${css},${js}점이므로 합격`;
    }
    else if (html < 40) {
        comment = `html과목이 ${html}점이므로 과락 불합격`
    } else if (css < 40) {
        comment = `css과목이 ${css}점이므로 과락 불합격`
    } else if (js < 40) {
        comment = `js과목이 ${js}점이므로 과락 불합격`
    } else {
        comment = `평균 ${avg}점 합격`
    }
} else {
    comment = `평균 ${avg}점 불합격`
}
console.log(comment)

// js과락으로 불합격 되었습니다..

 

 

 

 

switch문

 switch문은 switch(값)의 값과 case의 값들을 비교하여 일치하는 case를 실행 할 때 사용합니다.

switch(값) {
 case 값1: 실행문;
 break;
 
 case 값2: 실행문;
 break;
 
 default: 실행문;
}

 

// switch문 예시

const fruit = 'apple';

switch (fruit) {
  case 'apple':
    console.log('사과다');
    break;
  case 'banana':
    console.log('바나나다');
    break;
  case 'orange':
    console.log('오렌지다');
    break;
  default:
    console.log('여기 없는 과일이다');
}


// 사과다

 

if문과 switch문은 모두 조건식을 사용하여 프로그램의 흐름을 제어하는 도구이지만

사용목적과 특징이 다르기 때문에 각각의 상황에 맞게 선택하여 사용하는게 좋습니다.

 

if문은 단일 조건을 평가하고 조건이 참일 경우에 특정 코드 블록을 실행합니다.

조건의 결과에 따라 다양한 동작을 수행 할 수 있으며, 여러개의 if문을 중첩하여 복잡한 조건을 처리 할 수 있습니다.

또한 일반적으로 조건이 상대적으로 간단하거나 독립적인 경우에도 사용되는데

예를들어, 만약 온도가 30도 이상이면 덥다라는 메시지를 출력한다와 같은 단순한 조건을 처리할때는 if문이 유용합니다. 

 

switch문은 변수나 식의 값을 평가하고, 여러개의 경우(case)에 따른 코드 블록을 실행하는데 

특정 값이 다양한경우에 따라 다른 동작을 수행해야 할 때 유용합니다.

if문보다는 다양한 경우를 처리할 때 가독성이 좋고 코드가 간결해 질 수 있습니다.

예를들어, 사용자로부터 입력받은 문자열에 따라 다른 동작을 수행하는 경우

사용자가 "A"를 입력하면 동작A를 실행하고 "B"를 입력하면 동작 B를 수행한다 와 같은 경우엔 switch문이 더 좋겠죠?