Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

반복문(for문) 본문

프로그래밍 언어/C언어

반복문(for문)

세레프 2023. 2. 11. 02:02

 프로그램은 위에서 아래로, 왼쪽에서 오른쪽으로 진행된다. 하지만 이 정상적인 흐름을 제어하는 문법이 있는데, 이를 제어문이라고 한다. 반복문이 이 제어문의 일종으로, while문과 for문이 있다. while문에 대해서는 아래 링크를 통해 볼 수 있으며, 이 글에선 for문에 대해서 알아보자.

 

 

반복문(while문)

제어문이란 위에서 아래로, 왼쪽에서 오른쪽으로 실행하는 프로그램의 평범한 실행 흐름을 인위적으로 제어하는 문법이다. 제어문에는 조건문과 반복문이 있으며, 조건문에는 if문, switch문, 반

my-it-diary.tistory.com

 

 반복문-for문

 반복문을 사용하는 목적은 반복적인 작업을 문법으로 쉽게 처리하기 위함이다. 그래서 while문과 for문은 조건식이 참일 동안에 실행문을 반복한다.

 

 while문과 for문은 비슷한 구조를 가지고 있다. 다만 for문은 while문에 비해 실행문을 원하는 횟수만큼 반복할 때 사용되도록 특화되어 있다.

구조식
for(초기식;비교식;증감식;){

    반복할 실행문;

}

for문의 구조식 순서도

  • 초기식 : 반복문에서 비교식과 증감식에서 사용할 변수를 초기화하는 곳
  • 비교식 : 반복문을 실행할 조건을 선언하는 곳
  • 증감식 : 초기식에서 선언한 변수를 증감하는 곳

 for문을 보면, while문과 같이 비교식이 참일 경우 실행문을 실행하고 난 뒤, 다시 비교식으로 가서, 비교하는 식으로 구성되어 있다.

 

 차이점이 있다면, while문에서는 초기식과 증감식이 따로 있고, for문의 초기식과 증감식은 비교식과 함께 있다는 점이다. 그래서 for문이 while문보다 반복횟수를 쉽게 알 수 있게 되는것이다.

for문 while문
int i;

for(i = 0; i<10; i++){
    ...
}
int i = 0;
while(i<10){
    ...
    i++;
}

 

 for문을 이용한 예시를 보도록 하자.

#include<stdio.h>
#include<math.h> //<math.h>: 수식함수 라이브러리

void main() {
	int a;
	printf("양의 정수:");
	scanf("%d", &a);
	for (int i = 1; i <= a; i++) {
		printf("%.0lf\n", pow(i,2)); //pow(밑수,지수):밑의 지수를 구하는 함수 를 사용하기 위함
	}
}

위의 소스코드 순서도

 위의 예제의 실행과정을 보면, 초기식에서 변수 i를 생성하고 변수 i를 초기화를 한번만 실행한다. 이때, 사용되는 변수 i는 반복문 밖의 코드에선 사용할 수 없다.

 이어서 조건식인 "i <= a"의참, 거짓을 판단한 후에, 참일 경우 중괄호 안에 있는 "printf("%.0lf\n", pow(i,2));"를 실행하게 된다.

 그 후 증감식인 "i++"를 수행하고 다시 조건식의 참, 거짓을 판단하는 순서로 반복된다. 이렇게 반복하는 과정에서 조건식이 거짓이 되면 실행이 끝이 난다.

 

 

 for문은 반복할 문장을 실행할 때마다 초기식의 변수의 값을 하나씩 증가시켜 원하는 횟수가 될 때 까지 반복하는 방법을 사용한다. 그래서, for문을 사용할 때, 몇가지 주의사항이 존재한다.

 

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

 특정 횟수를 나타내는 조합은 많다. 위의 조합들은 i값이 3개가 나오기에 3번 반복한다. 하지만 2번에서 4번의 코드는 1번코드에 비해 이해하기 어려운 코드이다. 따라서 이해하기 쉬운 1번 코드를 주로 사용하는 것이다.

 

  • 반복 홧수를 세는 변수를 실행문 안에서 바꾸지 않을 것
for(i=0; i<10; i++){
    printf("Be happy\n");
    i += 2;
}

 초기식, 비교식, 증감식을 보면 개발자의 의도는 10번 실행할려는 것이다. 하지만 해당 코드는 4번만 반복될 것이다. 그 이유는 실행문 안에 있는 "i += 2" 때문이다. "i += 2"가 없다면, i의 값은 0~9까지 나오지만, "i += 2"가 있게 되면서 i의 값은 0,3,6,9가 나오게 된다. 따라서 횟수를 위해 사용하는 변수는 실행문 안에 사용하는 것을 피해야 한다.

'프로그래밍 언어 > C언어' 카테고리의 다른 글

다중 반복문  (0) 2023.02.13
분기문(break문, continue문)  (0) 2023.02.12
반복문(while문)  (0) 2023.02.10
조건문(switch문)  (0) 2023.02.09
조건문(if문)  (0) 2023.02.08
Comments