반복문 (1)

이지우·2022년 5월 6일
1

C언어

목록 보기
2/17

반복문 : 조건을 만족하는 동안 같은 문장을 반복 실행한다.

  • for문
  • while문
  • do - while문

for문

원하는 횟수만큼 반복할 때 사용한다. (횟수가 정해져 있을 때 사용)

for (초기식; 조건식; 증감식)
{
	실행문
}

for문이 실행되는 과정

  1. 초기식(int i = 0)은 for문이 실행될 때 처음 한 번만 실행된다.
  2. 조건식(i < 3)이 참이면 실행문이 실행된다.
  3. 실행문이 끝나면 증감식(i++)이 실행된다.
  4. 다시 조건식을 검사하고 거짓이 될 때까지 2, 3을 반복한다.

ex) a 값을 두 배로 증가시키는 문장을 3번 반복하는 코드

int a = 1;
for (int i = 0; i < 3; i++)
{
	a = a * 2;
}

i = 0, i = 1, i = 2일 때 조건식이 참이므로 a = a * 2는 총 3번 실행된다.

for문 사용 시 주의점

  1. 초기식, 조건식, 증감식은 반복 횟수를 알기 쉽게 작성한다.
for (i = 0; i < 3; i++)		// i의 값이 0, 1, 2일 때 총 3번 반복
for (i = 2; i <= 4; i++)	// i의 값이 2, 3, 4일 때 총 3번 반복
for (i = 0; i < 7; i += 3)	// i의 값이 0, 3, 6일 때 총 3번 반복
for (i = 3; i > 0; i--)		// i의 값이 3, 2, 1일 때 총 3번 반복

모두 3번 반복하는 것을 나타내는 식이지만 첫 번째 형식을 주로 사용한다.
(배열에서 for문을 활용하는 코드를 많이 작성하게 되는데 배열은 0번부터 시작하기 때문에 초기식을 0으로 설정하는 것에 익숙해지는 것이 좋다.)

  1. 반복 횟수를 세는 변수를 반복문 안에서 바꾸지 않는 것이 좋다.
for (i = 0; i < 10; i++){
	printf("Hello, world!");
    i += 2;
}

이 코드에서 반복 횟수를 한눈에 알아보기 힘들다.
for (i = 0; i < 10; i++) 를 보면 10번 실행된다고 보인다.
하지만 실행문에서 i 값이 증가되므로 i = 0, 3, 6, 9일 때 총 4번 반복된다.


while문

조건식이 참인 동안 실행문을 반복한다.

ex) a가 10보다 작은 동안 a를 두 배씩 반복적으로 늘리는 코드

int a = 1;
while (a < 10)		// 조건식
{
	a = a * 2;		// 실행문
}
while문 1회while문 2회while문 3회while문 4회while문 5회
a<10거짓
a = a*21 * 22 * 24 * 28 * 2
a 값24816

조건식이 거짓이 되면 실행문이 실행되지 않고 while문이 끝나게 된다.


do - while문

일단 반복할 문장을 한 번 수행한 후에 조건을 검사한다.
조건과 관계없이 실행문을 무조건 한 번 실행한 뒤 while문과 같이 조건이 거짓이 되기 전까지 반복 실행된다.

do {
	반복할 문장
} while (조건식);	// 마지막에 세미콜론을 잊지 말자!!

ex) a 값을 두 배씩 늘리는 문장

int a = 1;

do {
	a = a * 2;		// 실행문
} while (a < 10);	// 조건식
  • a 값을 1로 초기화 했을 경우
    while문과 do-while문 실행 결과가 같다.
  • a 값이 10으로 초기화될 경우
    while문은 조건이 거짓이 되므로 실행되지 않는다.
    do-while문은 조건이 거짓이지만 한 번은 실행되므로 a = 20이 된다.

for문을 while문으로 바꾸기

for문

for (i = 0; i < 10; i++)
{
	printf("Hello, world!\n");
}

while문

i = 0;
while (i < 10)
{
	printf("Hello, world!\n");
    i++;
}

for문이 반복 횟수를 한눈에 알아보기 쉬우므로 반복 횟수가 정해진 경우에는 for문을 사용하는 것이 좋다.

profile
노력형 인간

1개의 댓글

comment-user-thumbnail
2022년 5월 14일

잘 보고 갑니다. 허허

답글 달기