본문 바로가기
정보처리산업기사 공부 메모/프로그래밍언어 활용

📚 C 제어문

by Nyanggu 2023. 5. 2.

제어문 : 조건 지정에 따라서 진행 순서 변경

 

while문
while ( number <= 10)
{
	/* ture */
}
	/* false */

실행 순서
- 조건 판단
- ture인 경우 { } 수행
- false인 경우 { } 빠져나옴
=> 조건이 거짓이면 한번도 수행하지 않는다.

 

 

do while문
do
	/* 일단 수행 */
while ( 조건 )
{
	/* ture */
}
	/* false */

실행 순서
- { } 먼저 수행
- 조건 판단
- ture인 경우 { } 수행
- false인 경우 { } 빠져나옴
=> 조건이 거짓이라도 한번은 수행한다.

 

 

break문

: while문과 같은 가장 가까운 루프를 벗어나는 명령어

while (ture or 1)
{
	sum=sum+number;
	number++;
	if(number>10)break;
}
printf("\n1+2+...+10=%d\n", sum)

 

 

goto문

: 프로그램 실행 중 현재 위치에서 원하는 다른 문장으로 건너뛰어 수행을 계속하기 위해 사용

: 유지보수 어렵고 거의 사용 안함

 


1~10까지 짝수 합계 : if문, for문

A type

int i = 0;
int SUM = 0;
do
{
	i = i+2;
	SUM = SUM+i;
} while (i < 10);
printf("%d", SUM);     /* 30 */

 

B type

int i = 0;
int SUM = 0;
do
{
	i = i+1;
	if( i % 2 == 0)
	SUM = SUM+i;
} while (i < 10);
printf("%d", SUM);     /* 30 */

 


C type

int i = 0;
int even=0;
int odd=0;
for(int k=1; k>=10; k++)
{
	if(k % 2 == 0)
		evet += k;
	else
		odd += k;
}
printf("%d %d", even, odd);   /* 30 25 */

 


다중 if 문

예시) 학점 출력 프로그램
- 조건 90점이상 A, 80점 이상 B, 70점이상 C, 60점 이상 D, 그외 F학점

int j = 75;

if( j >= 90){
	printf("A");
}else if( j >= 80){
	printf("B");
}else if( j >= 70){
	printf("C");
}else if( j >= 60){
	printf("D");
}else{
	printf("F");
}

/* C */

 

switch ~ case문 : 다중 if문을 간략화
int j = 75;
switch( j / 10 )
{
	case 10:
	case 9:
	printf("A");
	break;
	case 8:
	printf("B");
	break;
	case 7:
	printf("C");
	break;
	case 6:
	printf("D");
	break;
	default:	
	printf("F");
	break;
}

/* C */

 

continue문 : 다음 반복을 실행하는 명령어

1~10까지 홀수 합계
: 짝수인 경우 누적하지 않도록 break와 continue문 사용

int i = 0, odd = 0;
while (true) {
    i++;
    if (i > 10) {
        break;
    }
    if (i % 2 == 0) {
        continue;
    }
    odd += i;
}
printf("%d", odd);

1) while(ture) -> 무조건 반복
2) break; -> i > 10인 경우 while문 벗어남
3) continue; -> i가 짝수인 경우 odd+= i; 수행하지 않고, while문 반복

댓글