본문 바로가기
프로그래밍/Javascript

JavaScript 기초 : 제어문 2. switch문

by 조크리 2020. 9. 7.
반응형

2. switch문

 

switch문은 if문과 비슷해보이지만 다르다. 

default;가 아니라 default:이고 그 뒤에 동작 부분을 적어준다.

switch문은 어떤 값을 입력했는지에 따라 다르게 동작하는 문법이라고 볼 수 있다. 

if문과 비슷하지만 동작하는 방식이 조금 다르다. 

비교할 값과 조건값이 서로 일치할 때 : (콜론 쓰기!)

동작할 내용을 적는다. 

그리고 break를 적어서 switch문을 빠져나오게 적어주면 된다.

default: 다음에 동작 부분은

비교할 값이 모든 조건 값과도 일치하지 않을 경우의 코드를 작성해주면된다. 

비교할 값이 조건값1과 조건값2와 일치 하지 않을 경우 어떤 동작을 할 건지 적어주면 된다.

필요에 따라 생략도 가능하다. 

 

 

 

2-2. switch문으로 심리 테스트 만들기!

myChoice가 2라고 선언했다.

myChoice가 1과 같다면 '토끼~' 이 문구가 나올 것이다.

myChoice가 2와 같다면 '고양이~' 이 문구가 나올 것이다.

myChoice가 3과 같다면 '강아지~' 이 문구가 나올 것이다.

그리고 myChoice가 1,2,3이외 다른 숫자라면 '1에서 4 사이의 ~' 이 문구가 나올 것이다.

 

현재는 myChoice가 2니까 

 '고양이~' 이 문구가 나온다. 

 

'고양이를 선택한 당신, 난폭하군요.'

 

이 문구가 콘솔에 출력되었다. 

^^;;;

 

 

자, 이번에는 break; 이 부분을 다 지워보자!

 

Tip : Ctrl + D 를 누르면 똑같은 글자를 한 번에 블록 잡을 수 있다!!

 

 

출력된 결과를 살펴보자.

 

myChoice가 2인데 출력한 결과를 보면 case2에서부터 default까지 모든 동작 부분을 실행한다.

 

break문을 만나기 전까지 모든 동작을 실행하는 것이다!

 

switch문은 if문과 비슷하지만 사용법이 좀 다르다.

프로그래밍을 할 때에도 switch와 if 가 각각 필요한 경우에 맞게 사용하면 될 것 같다. 

 

 

 

 

 

2-3. switch문을 if문으로 바꾸기 

 

switch문을 당연히 if문으로 바꿀 수도 있다. 

심리테스트를 바꿔볼까?

let myChoice = 2

if (myChoice === 1) {
  console.log('토끼를 선택한 당신, ...');
} else if (myChoice === 2) {
  console.log('고양이를 선택한 당신, ...');
} else if (myChoice === 3) {
  console.log('코알라를 선택한 당신, ...');
} else if (myChoice === 4) {
  console.log('강아지를 선택한 당신, ...');
} else {
  console.log('1에서 4사이의 숫자를 선택해 주세요.');
}

if 문을 쓰면 else if를 쭉 나열하면 된다.

 

이 때 주의할 점은 등호 이다!!!!

myChoice === 1이렇게 등호가 3개가 들어가 있다.

만약 myChoice == 1 이렇게 등호가 2개 들어가 있다면

myChoice가 '2' 이렇게 문자열로 입력되어도 자동 형 변환이 되면서 동등 비교가 이루어 진다. 

 

그래서 if문에서는 

 

'고양이를 선택한 당신, 난폭하군요.'

 

이 문구가 출력된다. 

 

그러니까 헷갈리지 않기 위해서 if문으로 변환할 때는 꼭 반드시 === 등호를 3개 써줘야 한다.

 

 

 

 

그렇다면 myChoice = '2' 이 형태로 입력되었을 떄 switch문에서는 어떤 결과가 출력될까?

 

바로

 

 '1에서 4 사이의 값을 입력하세요.'

 

 

default로 정해준 문구가 출력된다. 

 

왜냐면 swtich는 자동으로 형변환을 안하기 때문에 자료형을 엄격하게 구분한다.

문자열 1과 맞는 경우가 없으니 default에서 동작하라는 부분을 동작시켜 준 것이다. 

 

 

if문을 보면 myChoice를 조건 값과 함께 비교하는 조건식을 매번 작성해야 하는 번거로움이 있다.

그리고 뭔가 switch문이 조금 더 눈에 잘 읽힌다. 

 

if문과 switch문 모두 특정한 조건에 따라 다르게 동작하는 코드를 만들 수 있다.

 

하지만 어떤 넓은 범위를 만족하는 조건식을 만들 때에는 if문을 활용하는 것이 더 효과적이다.

 

반대로 특정한 값에 일치하는 조건을 만들 때에는 switch문이 더 효과적이다. 

 

switch는 특정 값에 일치하는 조건을 만들 때 사용해봐야겠다. 

 

아무래도 if문을 훨씬 더 많이 사용하지 않을까?

 

 

 

 

다음 글에서는 for문의 사용법을 알아보자!

 

 

 

 

반응형