"케이스 (프로그래밍)"의 두 판 사이의 차이
잔글 |
|||
(같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''케이스'''(case) | + | '''케이스'''(case)는 물건을 담는 용도의 도구를 칭하기도 하지만 프로그래밍에서는 [[스위치 (프로그래밍)|switch]] 구문에서 조건을 걸어주는 [[명령어]]이다. 쉽게 말해 switch문 안에 [[if]]문 역할을 한다. |
+ | |||
+ | == 문법 == | ||
+ | case는 switch문 안에 쓰이기 때문에 switch문법과 같다. 문법은 다음과 같다. | ||
+ | switch(조건식) | ||
+ | { | ||
+ | case 상숫값 1: | ||
+ | 명령문 블록 1 | ||
+ | break; | ||
+ | case 상숫값 2: | ||
+ | 명령문 블록 2 | ||
+ | break; | ||
+ | case 상숫값 3: | ||
+ | 명령문 블록 3 | ||
+ | break; | ||
+ | . | ||
+ | . | ||
+ | . | ||
+ | default : | ||
+ | 명령문 블록 n | ||
+ | break; | ||
+ | } | ||
+ | switch문의 조건식의 결과 값과 case 상숫값이 일치하는지 검사한뒤 일치하는 값이 나오면 그 case문 아래의 명령문 블록을 실행한다. 그러나 여러 개의 case문 중에서 어느 하나라도 일치하는 값이 없으면 [[default]] 부분의 명령문 블록을 수행한다. default 부분은 switch문을 사용할 때 반드시 있어야 되는 코드는 아니지만 조건에 맞지 않을경우를 대비하여 만드는 것이 바람직하다.<ref name = " C언어책">문호석, 손명호, C로 시작하는 컴퓨터 프로그래밍, 《㈜한빛아카데미》</ref> | ||
+ | |||
+ | == break문 == | ||
+ | case 문은 if문과 다르게 break를 걸어주지 않으면 코드가 동시에 출력이 되는 경우가 있다. 그래서 항상 case문이 끝나기 전에 break를 넣어 빠져나가야 한다. 코드를 예시로 들면 다음과 같다. | ||
+ | num = 1; | ||
+ | switch(num) | ||
+ | { | ||
+ | case 1 : | ||
+ | printf("1"); | ||
+ | |||
+ | csae 2 : | ||
+ | printf("2"); | ||
+ | } | ||
+ | 위 코드를 보면 결과값은 1이 나오는게 정상이지만 break 구문이 빠져있기 때문에 1이라는것을 인식해도 코드가 멈추지 않고 2까지 함께 출력해버리게 된다. 이러한 문제를 방지하기 위해 break를 사용해서 case문을 빠져나와야 한다. | ||
+ | |||
+ | == 장단점 == | ||
+ | * '''장점''' : switch/case문은 if문에 비해 가독성이 우수하고 처리속도 또한 빠르다. 그리고 수정이 필요할 때에 원하는 곳을 빠르게 파악하여 수정을 할 수 있다. | ||
+ | * '''단점''' : switch/case문은 관계연산자 사용이 불가능하기 때문에 복잡한 조건일 경우 사용이 제한된다는 단점이 있다. | ||
{{각주}} | {{각주}} | ||
==참고자료== | ==참고자료== | ||
+ | * 문호석, 손명호, C로 시작하는 컴퓨터 프로그래밍, 《㈜한빛아카데미》 | ||
==같이 보기== | ==같이 보기== | ||
9번째 줄: | 49번째 줄: | ||
* [[조건문]] | * [[조건문]] | ||
* [[케이스]] | * [[케이스]] | ||
+ | * [[if]] | ||
− | {{프로그래밍| | + | {{프로그래밍|검토 필요}} |
2021년 7월 14일 (수) 10:10 기준 최신판
케이스(case)는 물건을 담는 용도의 도구를 칭하기도 하지만 프로그래밍에서는 switch 구문에서 조건을 걸어주는 명령어이다. 쉽게 말해 switch문 안에 if문 역할을 한다.
문법[편집]
case는 switch문 안에 쓰이기 때문에 switch문법과 같다. 문법은 다음과 같다.
switch(조건식) { case 상숫값 1: 명령문 블록 1 break; case 상숫값 2: 명령문 블록 2 break; case 상숫값 3: 명령문 블록 3 break; . . . default : 명령문 블록 n break; }
switch문의 조건식의 결과 값과 case 상숫값이 일치하는지 검사한뒤 일치하는 값이 나오면 그 case문 아래의 명령문 블록을 실행한다. 그러나 여러 개의 case문 중에서 어느 하나라도 일치하는 값이 없으면 default 부분의 명령문 블록을 수행한다. default 부분은 switch문을 사용할 때 반드시 있어야 되는 코드는 아니지만 조건에 맞지 않을경우를 대비하여 만드는 것이 바람직하다.[1]
break문[편집]
case 문은 if문과 다르게 break를 걸어주지 않으면 코드가 동시에 출력이 되는 경우가 있다. 그래서 항상 case문이 끝나기 전에 break를 넣어 빠져나가야 한다. 코드를 예시로 들면 다음과 같다.
num = 1; switch(num) { case 1 : printf("1"); csae 2 : printf("2"); }
위 코드를 보면 결과값은 1이 나오는게 정상이지만 break 구문이 빠져있기 때문에 1이라는것을 인식해도 코드가 멈추지 않고 2까지 함께 출력해버리게 된다. 이러한 문제를 방지하기 위해 break를 사용해서 case문을 빠져나와야 한다.
장단점[편집]
- 장점 : switch/case문은 if문에 비해 가독성이 우수하고 처리속도 또한 빠르다. 그리고 수정이 필요할 때에 원하는 곳을 빠르게 파악하여 수정을 할 수 있다.
- 단점 : switch/case문은 관계연산자 사용이 불가능하기 때문에 복잡한 조건일 경우 사용이 제한된다는 단점이 있다.
각주[편집]
- ↑ 문호석, 손명호, C로 시작하는 컴퓨터 프로그래밍, 《㈜한빛아카데미》
참고자료[편집]
- 문호석, 손명호, C로 시작하는 컴퓨터 프로그래밍, 《㈜한빛아카데미》
같이 보기[편집]