[제어문] - 조건문

Donggu(oo)·2022년 10월 26일
0

JavaScript

목록 보기
9/49
post-thumbnail

조건문


조건문(conditional statements)이란?

  • 프로그램 내에서 주어진 표현식의 결과에 따라 별도의 명령을 수행하도록 제어하는 실행문을 말한다.
  • 조건문 중에서 가장 기본이 되는 실행문은 if 문이다.

1. if ~ else 문


  • if ~ else 문은 주어진 조건식(boolean 값으로 평가될 수 있는 표현식)의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.
  • 조건식의 평가 결과가 true일 경우 if 문의 코드 블럭이 실행되고, false일 경우 else 문의 코드 블럭이 실행된다.
  • 기본 문법
if (조건식) {
    조건식의 결과가 참일 때 실행하고자 하는 실행문;
} else {
    조건식의 결과가 거짓일 때 실행하고자 하는 실행문;
}
function isOld(age) {
  if (age >= 20) {
    return true;
    } else {
    return false;
    }
  }

console.log(isOld(22));  // true
console.log(isOld(18));  // false
  • else if 문은 if 문처럼 표현식을 설정할 수 있으므로, 중첩된 if 문을 좀 더 간결하게 표현 가능하다.
  • 하나의 조건문 안에서 if 문과 else 문은 단 한번만 사용 가능하지만 else if 문은 여러번 사용되어 다양한 조건 설정이 가능하다.
  • 기본 문법
if (조건식1) {
    조건식1의 결과가 참일 때 실행하고자 하는 실행문;
} else if (조건식2) {
    조건식2의 결과가 참일 때 실행하고자 하는 실행문;
} else {
    조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 실행문;
}
function miniCalculator(num1, num2, operator) {
  if (operator === '+') {
    return num1 + num2;
  }
  else if (operator === '-') {
    return num1 - num2;
  }
  else if (operator === '*') {
    return num1 * num2;
  }
  else if (operator === '/') {
    return num1 / num2;
  }
}

console.log(miniCalculator(10,5,'+'))  // 15
console.log(miniCalculator(10,5,'-'))  // 5
console.log(miniCalculator(10,5,'*'))  // 50
console.log(miniCalculator(10,5,'/'))  // 2

2. 중첩 if 문


  • 중첩 if 문은 바깥쪽에 있는 조건문의 조건식1을 만족해야만 안쪽에 있는 조건문인 조건식2를 검사한다. 만일 안쪽 if 문의 조건식2를 만족하지 않으면 바깥쪽 조건문인 조건식1의 중괄호 안에 있는 코드만 실행하고 종료된다.
  • 기본 else if문 문법
if (조건식1) {
    if (조건식2) {
         실행문;
    }
}
let useID = "silvery";
let usePW = "1234";

let id = prompt("아이디가 무엇인가요?");
let pw = prompt("비밀번호가 무엇인가요?");

if( useID == id ){
    //아이디가 같을 때
    if( usePW == pw ){
        document.write(id + "님 반갑습니다.");
    } else {
        document.write("비밀번호가 틀렸습니다.");
    }
} else {
    //아이디가 다를 때
    document.write("아이디가 일치하지 않습니다.");
}

3. switch 문


  • switch문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다.
  • case 문은 상황을 의미하는 표현식을 지정하고 콜론(:)으로 마친다. 그리고 그 뒤에 실행할 문들을 위치시킨다.
  • switch 문의 표현식과 일치하는 case 문이 없다면 실행 순서는 default 문으로 이동하며, default 문은 선택사항으로 사용할 수도 있고 사용하지 않을 수도 있다.
  • 기본 문법
switch (표현식) {
    case 표현식1:
        switch 문의 표현식과 표현식1이 일치하면 실행할 문;
        break;
    case 표현식2:
        switch 문의 표현식과 표현식2가 일치하면 실행할 문;
        break;
    default:  // default 문에는 별도의 break문이 필요 없다.
        switch 문의 표현식과 일치하는 case문이 없을 때 실행할 문;
}
  • if ~ else 문의 조건식은 boolean 값으로 평가되어야 하지만 switch 문의 표현식은 boolean값 보다는 문자열이나 숫자 값이 경우가 많다. 즉 if ~ else문은 논리적 참, 거짓으로 실행할 코드 블럭을 결정한다.
  • switch문은 논리적 참, 거짓보다는 다양한 상황(case)에 따라 실행할 코드 블럭을 결정할 때 사용한다.
let a = 4

switch (a) { // 현재 변수 a = 4
	case 3:  // a가 3이면?
     console.log('비교하려는 값보다 작습니다');
     break; 
    
    case 4:  // a가 4이면?
     console.log('비교하려는 값과 일치합니다');
     break;
     
     case 5:  // a가 5이면?
      console.log('비교하려는 값보다 큽니다');
      break;
      
     default:  // ark 3, 4, 5 모두 아니라면?
      console.log("어떤 값인지 파악되지 않습니다");
}
  • 코드가 같은 case문은 같이 묶을 수도 있다.
function level(value) {
  let result = "";
  switch (value){
    case 1:
    case 2:
    case 3: 
      answer = "Low"; 
      break;
    case 4:
    case 5:
    case 6: 
      answer = "Mid";
      break;
    case 7:
    case 8: 
    case 9:
      answer = "High"; 
      break;
  }
  return answer;
}

level(1);  //Low
level(4);  //Mid
level(8);  //High

0개의 댓글