c언어 - 반복문(while, 제어문, do whlie)

2022. 3. 23. 17:32C언어

728x90

while

for문이랑 매우 비슷하다. 초기 값만 없다고 생각하면 될 거 같다. 

while(조건){

조건이 성립할때 실행할 내용. (조건이 성립 조건이 true, 1이다.)

}

int sum = 0;
	int i = 1;
	while (i <= 100) {
		sum = sum + i;
		i = i + 1;
	}

	printf("1~100까지의 합 = %d\n", sum);

 

for문이랑 비슷해서 배우면서 느끼면 될 거 같다. 

 

do while

do 다음의 명령을 실행한다. 조건이 어떻던간에 무조건 한번 실행한다. 

그리고 반복문의 조건을 만족시키는 동안 반복문을 돌아준다. 

do{
	sum=sum+1;
    i=i+1;
}while(i<=100)

 

 

 

 

 

무한 루프 

 

while(1){
}
for(;;){



}

조건식을 명시하지 않으면 이 조건은 항상 참으로 평가되기 때문에 루프가 끝나지 않게 된다. 그렇다면 무한 루프는 정말로 무한히 반복되는가 하면 그렇지 않다. 정말로 무한이면 시스템 다운 상태가 되고 말 것이다. 무한루프의 정확한 정의는 반복 회수가 가변적인 루프를 의미한다. 

 

break;

루프 자체에는 종료 조건이 포함되어 있지 않으며 명령을 실행하다가 일정한 조건이 되면 루프를 탈출한다. 즉 무한 루프란 형식상 무한히 반복되도록 해 놓고 루프 내부에서 끝낼 시점을 결정하도록 하는 루프이다. 그래서 무한 루프의 명령 불록에는 루프 탈출 처리가 반드시 포함되어 있어야 한다. 루프를 탈출할 때는 break문을 사용하는데 break는 조건식을 무시하고 강제로 루프를 종료하는 명령이다. 무한 루프의 탈출하는 일반적인 형태는 다음과 같다. 

for(;;){
	명령;
    if(조건){
    break; //for문 강제종료
    }
 }

밑의 코드는 100이 될때 까지 반복하는 for문입니다.

#include <stdio.h>
#pragma warning(disable : 4996);
int main() {

	int num;
	for (; ; ) {
		printf("수를 입력받을께 : ");
		scanf("%d", &num);
		printf("\n");
		if (num == 100) {
			printf("100이 맞음 탈출");
			break;
		}
		printf("100이 아닙니다\n");
		
	}
	return 0;
}

 

 

문제 1 

1부터 n까지 더하면서 3000을 넘지 않는 최대의 수를 찾아서 출력하기.

ex) 50을 넘지않는다 가정 45가 최대 1부터 9까지 더하기

 

 

728x90

'C언어' 카테고리의 다른 글

c언어 5주차 연산자의 종류  (0) 2022.05.12
c언어-(for문)  (0) 2022.03.28
c언어 -반복문 (for)  (0) 2022.03.23
c언어 - 조건문(if , else, else if)  (0) 2022.03.23
c언어-(if 조건문)  (0) 2022.03.17