Day04 - Switch (스위치문)
Switch ( 스위치문 )
이번에는 Switch문에 대해 알아 봅시다 ~
Switch 문은 if문이랑 80% 정도 유사 합니다
일단 형태를 한번 볼까요?
Switch ( 값 또는 문자, 문자열 )
{
case 값1:
break;
case 값2:
break;
default:
break;
}
이렇게 형태만 보면 무슨 말인지 모르겠죠
그러면 어떻게 쓰는지 한번 볼까요?
위 사진을 한번 봐주세요
Switch 옆에 있는 소괄호() 안에는 변수 또는 변수에 대한 연산식이 들어갑니다.
여기서 int형 변수 a 가 들어가 있고, a는 1이죠.
그러면 case 1: 에 해당하는 구문을 실행하게 됩니다.
※break; 는 가장 가까운 중괄호를 빠져나갑니다.
이렇게 case 1: 에 해당하는 구문을 실행한 것을 확인 할 수 있죠
자 그러면 break 가 왜 필요한지 볼게요
break;를 지웠습니다. 여기서도 a는 1이죠. 그러면 어떻게 되는지 확인해 볼까요 ?
아까와는 다르게 switch에 있는 모든 구문이 실행이 된게 확인 되었습니다.
이렇게 switch는 아래로 내려오면서 실행시키기 때문에 break; 가 없다면 끝까지 실행을 하고 switch 를 빠져 나옵니다
그러면 a가 2일 경우에는 어떻게 될까요 ?
a를 2로 바꾸고 결과값을 확인해 보겠습니다.
이렇게 a가 1일 때와는 달리 "1입니다"가 출력되지 않았죠.
switch문은 (case 값:) 값에 해당하는 곳으로 이동해서 실행이 됩니다
그리고 default 는 if문에서 else 와 같습니다.
case 값이 전부 아닐 경우 라고 생각하시면 되요
a를 10으로 바꿔 주겠습니다.
이렇게 case 에 존재하지 않는 값은 default 구문이 실행 됩니다
그러면 case 0: 에는 아무것도 안쓰여 있는데 a가 0이라면 어떻게 될까요?
이렇게 됩니다. case 0: 으로 들어와서 break; 가 없으니 아래있는 case 1: 을 실행하고 break; 를 만나서 빠져나가는거죠.
아까 위에서 if문과 유사하다고 했는데 그 이유를 한번 보죠
이렇게 if 문으로 작성을 한 코드가 있습니다.
이 if 문으로 작성된 코드를 switch 문으로 바꿔 볼게요
이렇게 바꿀 수 있습니다. point / 10 이 뜻하는건 point 를 10으로 나눈 몫이죠
100 / 10 -> 10 , 95 / 10 -> 9 , 80 / 10 -> 8
이렇게 되겠죠 몫만 구하는 거니까
그리고 switch문 안에서 if문을 쓸수 있고 반대로 if문 안에서 switch문을 쓸 수 있습니다.
이렇게 switch문에 대해 알아 봤습니다.
고생하셨습니다