본문 바로가기
카테고리 없음

node.js/자바스크립트 - 17. 이런 케이스는 이렇게 해!

while 문의 진보 형태로 for 문이 있듯이, if문의 진보 형태로 switch ~ case 문이 있습니다.
switch – case 문의 사용 형태를 정리하면 아래와 같은데요.

switch(변수)
{
  case "1":
    1 매칭될 실행할 코드;
    break;
  case "2":
    1 매칭될 실행할 코드;
    break;
    :
    :
  default:
    앞에서 모든 값에 매칭이 안될 경우 실행할 코드
}


아래 알고리즘을 통해 예제를 살펴보겠습니다.

1) 사용자에게 아래 문구를 보여주며 변수choice값를 입력 받습니다.
  “좋아하는 언어는? 1)Node.js, 2)C++, 3)PHP, 4)파이썬”

2) 변수choice값에 따라 아래 내용을 출력합니다.
 “1” : "Node.js! 훌륭한 선택!"
 “2” : "C++! 최고속 언어!"
 “3” : "쉬운 서버 언어!"
 “4” : "인공지능을 원하세요?"
 “그외” : "잘못된 번호입니다."

 위 내용을 코드로 옮기면 아래와 같습니다.

choice=prompt("좋아하는 언어는? 1)Node.js, 2)C++, 3)PHP, 4)파이썬");
switch(choice)
{
  case "1":
    console.log("Node.js! 훌륭한 선택!");
    break;
  case "2":
    console.log("C++! 최고속 언어!");
    break;
  case "3":
    console.log("쉬운 서버 언어!");
    break;
  case "4":
    console.log("인공지능을 원하세요?");
    break;
  default:
    console.log("잘못된 번호입니다.");
}


첫번째 줄의 prompt() 는 node.js 명령어가 아닙니다. 웹 브라우저용 명령어인데요.

choice=prompt("좋아하는 언어는? 1)Node.js, 2)C++, 3)PHP, 4)파이썬");

위 코드가 실행되면 아래와 같은 선택상자가 표시되고, 내용을 입력 받습니다.

 입력란에 내용 입력 후, 확인 버튼을 클릭하면, 입력내용이 choice 변수에 대입됩니다.

이어서 switch 괄호안에 입력된 변수의 값에 따라

switch(choice)


해당하는 case 값을 찾아가서 그 아래부터 코드를 실행합니다.

case "1":  // 매칭성공!
    console.log("Node.js! 훌륭한 선택!");  // 여기부터 코드 실행


실행범위는 break;문을 만날 때 까지인데요, break; 문을 만나면 나머지 case 문을 모두 건너뛰고 중괄호 밖으로 빠져나갑니다.

case "1":
    console.log("Node.js! 훌륭한 선택!");
    break;  // break 만나면,
     :
     :
} // 밖으로 빠져나갑니다.


만약 매칭되는 값이 없을 경우, default  로 이동합니다. 그리고 아래 코드를 실행하지요.

     :
     :

  default:
    console.log("잘못된 번호입니다.");
}


switch – case 문에는 한가지 주의할 점이 있습니다.
그것은 바로 break;를 빠뜨리지 않는 것인데요. 숙련된 개발자도 가끔 실수하는 부분입니다.
아래 코드는 break를 누락했습니다. 어떻게 실행될까요?

switch(choice)
{
  case "1":
    console.log("Node.js! 훌륭한 선택!");
  case "2":
    console.log("C++! 최고속 언어!");
  case "3":
    console.log("쉬운 서버 언어!");
  case "4":
    console.log("인공지능을 원하세요?");
  default:
    console.log("잘못된 번호입니다.");
}


변수 choice 값에 매칭 부분으로 이동은 하지만, break; 가 없어 아래 부분이 모두 실행됩니다.
이를 테면 choice 값이 “3”이라면 case “3”으로 이동한 다음 break를 만날 때 까지 실행합니다.
이 경우 다른 case 와 default는 무시됩니다. ( 밑줄 친 부분 모두 실행 )

switch(choice)
{
     :
  case "3":
    console.log("쉬운 서버 언어!");
  case "4":
    console.log("인공지능을 원하세요?");
  default:
    console.log("잘못된 번호입니다.");
}
결과
쉬운 서버 언어!
인공지능을 원하세요?
잘못된 번호입니다.


도리어 이 기능을 역이용한 코딩방법도 많이 사용되고 있습니다. 아래는 샘플 코드입니다.

choice=prompt("먹고 싶은 음료는? 1)아메리카노, 2)카페라뗴, 3)카푸치노, 4)카라멜 마키아토");
switch(choice)
{
  case "1":
    console.log("1,500원입니다.");
    break;
  case "2": case "3": case "4":
    console.log("2,500원입니다.");
    break;
  default:
    console.log("잘못된 번호입니다.");
}

필요하신 분에게 도움이 되시길 바랍니다. 그러면 이만 :)

도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~


다음게시글 : https://itadventure.tistory.com/489

 

node.js/자바스크립트 - 18. 명령어를 만들어 볼까요? 함수 정의하기

자바스크립트에서는 함수(function) 기능으로 직접 명령어를 만들어 쓸 수 있는데요. 함수란 마치 초등학교 산수 시간의 X값을 넣어 Y라는 결과를 얻는 요술상자와 같습니다. 아래 요술상자는 X에 1

itadventure.tistory.com