728x90
반응형

< for 반복문 이해하기 >

 

> 반복문의 개념

1) 반복문이란 ?

(1) 반복적으로 명령문을 실행시킬 수 있는 문장 (중복성 제거, 간결해짐)

(2) 반복문 내부에 또 다른 반복문을 사용할 수 있음 (중첩 사용)

 

2) 반복문의 예

- "안녕하세요?" 라는 문장을 100번 화면에 출력하는 경우

- 반복문을 사용하지 않는 경우

: 동일한 명령문을 100번 사용해야하므로 중복성, 비효율성

- 반복문을 사용하는 경우

: 중복성 회피, 간결해짐

 

3) 반복문의 종류

- for 문 : 반복 횟수가 정해져 있는 경우

- while 문, do ~ while 문 : 반복 횟수가 정해지지 않는 경우

 

4) 무한반복

- 반복문이 종료되지 않고 지속적으로 반복되는 현상

break : 반복을 종료하는 명령문

continue : 반복을 건너뛰는 명령문

 

 

> for 반복문의 개요

1) for 반복문 구조

#include <stdio.h>

int main(void)
{
	for (초기식; 조건식; 증감식)
	{
		A 블록
	}


	return 0;
}

***

초기식 : 반복 전에 초기식 설정 수식

조건식 : 반복 여부를 판단하는 조건식

증감식 : A 블록을 한번 실행한 후에 실행되는 수식

A 블록 : 반복할 명령어들 중괄호( { } )로 묶여 있음, 명령어가 하나인 경우 중괄호 생략 가능

세미콜론( ; ) : 각 수식 사이에 위치, for 문 마지막에는 사용하지 않음

 

 

> for 반복문의 예

 

1) 동일한 문장 반복하여 3번 출력하기

#include <stdio.h>

int main(void)
{
	for (int cnt = 0; cnt < 3; cnt++)
	{
		printf("Hello\n");
	}

	return 0;
}

 

2) 1 에서 10 까지 화면에 출력하고, 합계를 출력하는 프로그램

#include <stdio.h>

int main(void)
{
	int sum = 0;

	for (int cnt = 1; cnt <= 10; cnt++)
	{
		printf("%d\n", cnt);
		sum = sum + cnt;
	}

	printf("sum = %d\n", sum);

	return 0;
}

 

3) 10에서 1까지 화면에 출력하는 프로그램

#include <stdio.h>

int main(void)
{
	for (int cnt = 10; cnt > 0; cnt--)
	{
		printf("%d\n", cnt);
	}

	return 0;
}

 

4) 1 에서 10 까지 짝수와 홀수를 화면에 출력하는 프로그램

#include <stdio.h>

int main(void)
{
	// 짝수 출력
    
	for (int cnt = 2; cnt <= 10; cnt += 2)
	{
		printf("%d\n", cnt);
	}
    
    //홀수 출력

	for (int cnt = 1; cnt <= 10; cnt += 2)
	{
		printf("%d\n", cnt);
	}
    
	return 0;
}

 

> for 반복문 실습

#include <stdio.h>

int main(void)
{
	//

	for (int cnt = 0; cnt < 3; cnt++)
	{
		printf("Hello\n");
	}

	int sum = 0;

	for (int cnt = 1; cnt <= 10; cnt++)
	{
		printf("%d ", cnt);
		sum += cnt;
	}

	printf("\n");
	printf("sum = %d\n", sum);

	for (int cnt = 10; cnt > 0; cnt--)
	{
		printf("%d ", cnt);
	}

	printf("\n");

	for (int cnt = 2; cnt <= 10; cnt += 2)
	{
		printf("%d ", cnt);
	}

	printf("\n");

	for (int cnt = 1; cnt <= 10; cnt += 2)
	{
		printf("%d ", cnt);
	}

	int three = 3;

	for (int cnt = 0; cnt < 10; cnt++)
	{
		printf("%d * %d = %d\n", three, cnt, three * cnt);
	}

	return 0;
}

< while 반복문 이해하기 >

 

> while 반복문의 개요

1) while 반복문이란?

  1. 반복 횟수가 미리 정해지지 않은 경우 주로 사용
  2. 조건식이 참인 동안 실행되는 반복문
  3. 초기식은 while 반복문이 시작되기 전에 선언
  4. 증감식은 while 반복문의 중괄호 ( { } ) 의 마지막에 선언
  5. 초기식과 증감식은 필요에 따라 생략 가능

2) while 반복문 구조

#include <stdio.h>

int main(void)
{
	초기식;
	while (조건식)
	{
		A 블록
		증감식;
	}

	return 0;
}

***

초기식 : while 반복문이 시작하기전에 초기식 설정 수식

반복문 : 반복 여부를 판단하는 조건식

증감식 : A 블록 한번 실행한 후에 실행되는 수식

A 블록 : 반복할 명령어들, 명령어가 하나인 경우 중괄호 생략 가능

세미콜론 (;) : while문 마지막에는 세미콜론 사용하지 않음

 

 

* for 문과 순서도가 같지만, 초기식과 증감식은 필요에 따라 생략 가능

 

3) while 반복문의 동작

 

 

> 반복문에서 사용하는 제어문

 

1)  break 제어문이란?

(1) 반복문 (for, while, do~while)에서 사용

(2) 반복문의 중괄호 ( { } ) 를 벗어나 반복문을 종료

(3) 중첩된 반복문에서는 가장 가까운 중괄호 ( { } ) 를 벗어남

 

2) continue 제어문이란?

(1) 반복문 (for, while, do ~while) 에서 사용

(2) 반복문 내부의 이후 명령문들을 건너뛰어 실행하지 않고 다음 단계로 넘어감

 

 

> while 반복문의 예

 

1) for 반복문과 while 반복문 비교

#include <stdio.h>

int main(void)
{
	// for 반복문
	int sum = 0;

	for (int cnt = 1; cnt <= 10; cnt++)
	{
		printf("%d\n", cnt);

		sum += cnt;
	}

	printf("sum = %d", sum);

	// while 반복문
	int sum = 0;
	int cnt = 1;
	
	while (cnt <= 10)
	{
		printf("%d\n", cnt);
		sum += cnt;
		cnt++;
	}

	printf("sum = %d", sum);

	return 0;
}

 

2) 1 에서 누적합계가 100이상이 될 때의 값을 출력하는 프로그램

#include <stdio.h>

int main(void)
{
	int cnt = 0;	// 초기식 1
	int sum = 0;	// 초기식 2

	while (sum < 100)	// 조건식
	{
		printf("%d\n", cnt);
		cnt++;	// 증감식
		sum += cnt;	// 증감식
	}
	
	printf("count = %d, sum %d\n", cnt, sum);

	return 0;
}

***

초기식

- 1부터 1씩 증가시키면서 sum 변수에 합계를 계산하기 위한 변수

- 누적합계 변수 sum

 

조건식

- 누적합계 변수 sum의 값이 100 이하인 경우 참

 

증감식

- 1 씩 증가

- sum 변수에 누적 합계

 

3) 정수값을 반복해서 입력 받아 화면에 출력하는 프로그램 (0이 입력되면 프로그램 종료)

#include <stdio.h>

int main(void)
{
	int input;

	while (1)	// 조건식
	{
		printf("value = ");
		scanf_s("%d", &input);
		if (input == 0) break;
		printf("input = %d\n", input);
	}

	return 0;
}

***

- 무한반복 while (1)

조건식을 항상 참으로 지정 (0: 거짓, 0이 아니면: 참)

 

4) 입력 받은 값이 짝수인 경우에만 누적 합계를 하는 프로그램 ( 0 이 입력되면 프로그램 종료 )

#include <stdio.h>

int main(void)
{
	int input;
	int sum = 0;

	while (1)
	{
		printf("Value = ");
		scanf_s("%d", &input);
		if (input == 0) break;
		if (input % 2 == 0) continue;
		sum += input;
	}

	printf("sum = %d\n", sum);

	return 0;
}

 

> while 반복문 실습

#include <stdio.h>

int main(void)
{
	printf("1 에서 10까지 출력하고, 합계 출력하기\n");

	int cnt = 1, sum = 0;

	while (cnt <= 10)
	{
		printf("%d ", cnt);
		sum += cnt;
		cnt++;
	}

	printf("\n누적합계는 %d\n", sum);

	printf("\n1에서 100까지 누적합계가 100이 넘어가는 숫자 출력하기\n");

	cnt = 0, 
	sum = 0;

	while (sum < 100)
	{
		cnt++;
		sum += cnt;
	}

	printf("count = %d, sum = %d\n", cnt, sum);

	printf("정수값을 반복해서 입력받아 화면에 출력 (0 입력시 종료)\n");

	int input;

	while (1)
	{
		printf("숫자를 입력하세요 (0은 종료)");
		scanf_s("%d", &input);
		if (input == 0) break;
		printf("input = %d\n", input);
	}

	printf("입력받은 값이 짝수이면 누적 합계, 홀수이면 다시 입력 받기(0입력시 종료)");

	input = sum = 0;

	while (1)
	{
		printf("숫자를 입력하세요 (0은 종료)");
		scanf_s("%d", &input);

		if (input == 0) break;
		if (input % 2 == 0) continue;
		sum += input;
	}
	printf("짝수 합계는 %d\n", sum);



	return 0;
}

 


< do ~ while 반복문 이해하기 >

 

> do ~while 반복문의 개요

 

1) do ~ while 반복문이란?

(1) 반복횟수가 미리 정해지지 않은 경우 주로 사용

(2) 초기식은 do ~while 반복문이 시작되기 전에 선언

(3) 증감식은 do ~while 반복문의 중괄호 ( { } ) 마지막에 선언

(4) 초기식과 증감식은 필요에 따라 생략 가능

(5) 조건식과 상관없이 중괄호 ( { } ) 내부의 명령문들이 먼저 한번

실행된 후 조건식이 실행됨 (while 반복문과의 차이점)

 

2) do ~ while 반복문 구조

#include <stdio.h>

int main(void)
{
	초기식;
	do
	{
		A 블록
		증감식;
	} while (조건식);

	return 0;
}

***

초기식 : 반복 전에 초기식 설정 수식

A 블록 : 반복할 명령어들, 명령어가 하나인 경우 중괄호 생략 가능, 조건식을 판별하기 전에 실행

증감식 : 주로 중괄호 마지막에 선언, 반복할 때마다 수행

조건식 : 중괄호 내부에 명령문들이 수행한 다음에 반복 여부를 판단

세미콜론 (;) : do ~while문 마지막 세미콜론 사용

초기식과 증감식은 필요에 따라 생략 가능

 

 

 

 

 

 

> do ~while 반복문의 예

1) while 반복문과 do ~while 반복문 비교

- 1 에서 10 까지 값을 출력하고, 합계를 계산하는 프로그램

#include <stdio.h>

int main(void)
{
	// while 반복문
	int cnt = 1, sum = 0;

	while (cnt <= 10)
	{
		printf("%d\n", cnt);
		sum += cnt;
		cnt++;
	}

	printf("sum = %d", sum);
	
	// do ~while 반복문
	int cnt = 1, sum = 0;
	do {
		printf("%d\n", cnt);
		sum += cnt;
		cnt++;
	} while (cnt <= 10);

	printf("sum = %d", sum);

	return 0;
}

 

2) 정수값을 반복해서 입력 받아 화면에 출력하는 프로그램 (0이 입력되면 프로그램 종료)

#include <stdio.h>

int main(void)
{
	int input;
	do
	{
		printf("value = ");
		scanf_s("%d", &input);
		printf("input = %d\n", input);
	} while (input != 0);

	return 0;
}

 

 

> do ~while 반복문 실습

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts