일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 물리학
- C
- Nemeth Braille
- css3
- Inkscape
- 나무위키
- ┌─┐
- 프로그래밍 언어
- IT
- 자바스크립트
- 글이_점점_짧아지고_있습니다.
- javascript
- 점자
- html5
- 수학
- python
- 프로그래밍
- matlab
- 위키
- 선형대수학
- 확률
- Java
- 리브레위키
- CSS
- HTML5.
- C언어
- LaTeX
- 오늘의 문제
- html
- C++
- Today
- Total
SturdyCobble's Study Note
[프로그래밍] 3.2 제어문(2) - switch/case문 본문
NOTICE : 독학인 만큼, 잘못된 내용이 있을 수 있습니다. 내용 지적은 언제나 환영합니다.
더 이상 이 블로그에는 글을 올리지는 않을 예정입니다. 그렇지만 댓글을 달아주시면 최대한 답변드리고자 노력하겠습니다.
※이 글은 프로그래밍 언어에 대한 기초적인 이해를 가정하고 있습니다. 최소 프로그래밍 언어 하나 정도를 약간이라도 접해보시는 것을 추천합니다. 또한, 이 글은 심화 내용은 되도록 피하여 서술했습니다.
switch문은 if문과 비슷하지만, 여러가지 케이스에 따라 실행할 내용을 달리 해야 할 필요가 있을 때 유용하게 이용될 수 있습니다. (참고로 switch문은 Python에 존재하지 않습니다. Python에서 switch 문법을 대신할 수 있는 코드는 아래에 따로 언급하도록 하겠습니다.)
switch문은 C/C++, Java에서 다음과 같이 사용됩니다.
switch( 변수 ){
case 값1:
실행 내용 1;
break;
case 값2:
실행 내용 2;
break;
case 값3:
실행 내용 3;
break;
case 값4:
실행 내용 4;
break;
default:
실행 내용 5;
break;
}
이 때, 변수의 값을 판단에서 위에서 부터 값1인 경우 실행 내용 1을, 값2인 경우 실행 내용 2를 실행하며, 차례로 나아가다가 나머지 경우에는 default:에 있는 실행 내용 5를 실행하게 됩니다. 이때 입력 변수는 C언어의 경우 int형이며, Java의 경우 int형이나 String형이 오게 됩니다.
이때, break;는 switch문을 중간에 중단시키는 역할을 합니다. 만약 break;문이 없다면, 계속 아래 케이스로 넘어가게 됩니다.
switch문은 100% if, else문으로 변환할 수 있지만, 그 반대는 불가능합니다. 하지만, 코드를 정형화하여 나타낼 수 있기에, 때때로 사용되게 됩니다. 아래 예시를 참고해봅시다.
int keyNum = 75;
switch(keyNum){
case 75: System.out.println("Left Key"); break;
case 77: System.out.println("Right Key"); break;
case 72: System.out.println("Up key"); break;
case 80: System.out.println("Down key"); break;
default: System.out.println("ERROR : Can't Identify the Key Code"); break;
}
방향키 코드를 입력 받은 상황에서 이를 비교하는 상황을 가정했을 때, 위와 같은 코드로 간단하게 키가 어떤 키인지 판단해볼 수 있습니다.
그런데, 여기서 왜 실수를 대입할 수 없을 지 의문이 드실 것입니다. 이는 실수가 정확히 메모리에 저장될 수 없기 때문입니다. 아래 코드의 결과를 예상해봅시다.
float num1 = 7.57;
if(num1 == 7.57){
printf("EQUAL");
}
else{
printf("NOT EQUAL");
}
EQUAL을 예상하겠지만, 결과를 함부로 예상할 수 없습니다. 이는 실수를 저장하는 과정에서 정밀도가 약간 떨어지기 때문입니다. 이 코드를 실행한 결과, 제 경우 NOT EQUAL을 얻었습니다. 따라서, 실수는 동등함을 보장하기가 힘드므로, 이후 다룰 절댓값 함수를 이용해, 일정 범위내에서 일치함을 보여주는 것이 좋습니다.
한편, Python에는 switch문이 없는데, 이 경우 Dictionary 자료형(이후 다루겠습니다.)을 이용해서 비슷하게 처리할 수 있습니다. 이에 대해서는 나중에 다시 다뤄보겠습니다. 아니면, if문도 당연히 가능하겠죠?
지금까지 배운 if문과 switch문을 순서도(Flow Chart)로 나타내보면 아래와 같이 나타내볼 수 있습니다.
|
||||
|
|
|||
|
'휴지통 > ['19.06-'20.07]프로그래밍101' 카테고리의 다른 글
[프로그래밍] 3.4 제어문(4) - for (each)문 (0) | 2019.08.11 |
---|---|
[프로그래밍] 3.3 제어문(3) - while, do~while, break, continue, goto (0) | 2019.08.05 |
[프로그래밍] 3.1 제어문(1) - if문 (0) | 2019.08.03 |
[프로그래밍] 2.8 주석(Comment) (0) | 2019.08.03 |
[프로그래밍] 2.7 자료형[4] - 배열과 리스트(2) (0) | 2019.07.29 |