학습목표
1. 프로그램의 제어 구조를 이해하고 필요성에 대해 생각해 본다.
2. 선택문 제어문(if문, switch문, goto문)의 사용 방법을 이해하고 적용할 수 있다.
3. 반복 제어문(for문, while문, do~while문)의 사용 방법을 이해하고 적용할 수 있다.
4. break문과 continue문의 사용 방법과 차이점을 이해할 수 있다.
주요용어
제어구조, if문, if~else문, switch문, goto문, for문, while문, do~while문, break문, continue문
4.1.2 switch문
switch ~ case 문은 다양한 경우의 처리가 가능한 제어문이다. 다중 선택의 경우 if문에 비해 switch ~ case 문이 보다 간결하게 표현되는 장점이있다.
- 형식 : switch (수식) {
case값 1 : 명령문1;
case값 2 : 명령문2;
....
default : 명령문 n; }
- 기능 : 주어진 값에 따라 여러 곳 중 한 곳으로 분기하여 실행한다.
// switchansdml break문을 사용하지 않은 예
#include <stdio.h>
void main(){
int n;
printf("n = ?");
scanf("%d", &n);
printf(" n %% 5 = %d \n", n % 5);
// %%는 %문자 자체를 출력 시킴
switch(n % 5){
/* 입력된 수를 5로 나누어
그 나머지에 해당되는 경우로 분기 */
case 0 : printf("나머지는 0 \n") ;
case 1 : printf("나머지는 1 \n") ;
case 2 : printf("나머지는 2 \n") ;
default : printf("나머지는 3 이나 4 \n"); } }
// switchansdml break문을 사용한 경우
#include <stdio.h>
void main(){
int n;
printf("n = ?");
scanf("%d", &n);
printf("n%% 5 = %d \n", n % 5);
// %%는 % 문자 자체를 출력 시킴
switch(n%5){
/*입력된 수를 5로 나누어 그
나머지에 해당되는 경우로 분기 */
case 0 : printf("나머지는 0 \n");
break;
case 1 : printf("나머지는 1 \n");
break;
case 2 : printf("나머지는 2 \n");
break;
default : printf("나머지는 3이나 4 \n");
break; } }
//switch 문의 사용 예2
#include <stdio.h>
void main(){
enum syllable {Do, Re, Mi, Fa} tone;
// enum syllable 타입의 tone 선언
for(tone = Do; tone <= Fa; tone +=1) {
//Do, Fa를 숫자처럼 사용가능
switch(tone){
case Do : printf("도는 하얀 도라지 \n"); break;
case Re : printf("레는 하얀 레코드 \n"); break;
case Mi : printf("미는 하얀 미나리 \n"); break;
case Fa : printf("파는 하얀 파랑새 \n"); break; } } }
4.1.3 goto 문
goto 문은 무조건적인 분기 명령으로, 보통 루프(loop)가 여러 개 중첩되어 있을 경우 한꺼번에 루프를 벗어나고자 할 때사용 된다. goto 문은 현재 위치에서 프로그램의 실행 순서를 원하는 곳으로 이동시켜 그곳의 명령문을 수행하게 한다. 그러나 반복문 밖에서 안으로의 분기나, if 문의 범위 안으로 이동할 수 없다.
- 형식 : Label :
goto Label;
......
- 프로그램 수행 도중에 원하는 곳으로 제어를 무조건적으로 옮긴다.
goto문의 사용 예1
#include <stdio.h>
void main(){
int i, n, c = 'A';
while (1) {
// 조건에 따른 while 반복문
printf("횟수는 ?") ;
scanf("%d", &n);
for(i=1; i <=n; i++){
// n 회 반복하는 for반복문
printf("%c", c);
if( c == 'Q')
goto end;
// 레이블명 end로 무조건 실행을 옮김
c++; }
printf("\n\n") ; }
end:
//레이블명(레이블명 다음에는 콜론을 붙임)
printf("\n\n끝"); }
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
for문, while문, do~while문 차이점 (0) | 2020.05.28 |
---|---|
제5강 for문, while문, do~while문, break문, continue문 (0) | 2020.05.27 |
제5강 if문, if~else문 (0) | 2020.05.25 |
제4강 대입, 비트, 기타, 연산자 , 연산자우선순위 (0) | 2020.05.24 |
제4장 연산자(operator)(산술 연산자, 관계 연산자) (0) | 2020.05.23 |