< 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 반복문이란?
- 반복 횟수가 미리 정해지지 않은 경우 주로 사용
- 조건식이 참인 동안 실행되는 반복문
- 초기식은 while 반복문이 시작되기 전에 선언
- 증감식은 while 반복문의 중괄호 ( { } ) 의 마지막에 선언
- 초기식과 증감식은 필요에 따라 생략 가능
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 반복문 실습
'Language > C & C++' 카테고리의 다른 글
C_08. Basic Grammar of Pointer (0) | 2022.08.11 |
---|---|
C_07. Basic Grammar of Array (0) | 2022.08.11 |
C_05. Basic Grammar of Conditional Statement (0) | 2022.08.10 |
C_04. Basic Grammar of Logical and Conditional Operator (0) | 2022.08.09 |
C_03. Basic Grammar of Arithmetic and Relational Operator (0) | 2022.08.08 |