top of page
작성자 사진JC.kim

[C Programming] 반복문 For, While 문 예제


이번에는 C언어에서 매우 많이 사용되는 함수 중 하나인 For 문과 While문에 대해 간단히 알아보고 예제를 풀어보자.

For문 함수

for( X,Y,Z)

{

consequent;

}


for 문 안에 있는 X식은 초기값이다. Y는 조건식이며 Z는 종결식이다. 초기값 X로 시작하여 종결식 Z을 Y조건내에서 consequent를 반복한다. 조건식 Y는 식의 조건을 결정하며, Z종결식은 초기값에서 부터 실행된 consequent를 증가시킬지 감소시킬지 결정한다.


While문 함수

while(condition)

{

consequent;

}


While문은 괄호안의 condition이 만족되면, consequent가 계속 반복된다. for문과 다르게 초기식과 종결식없지만, consequent 내부에 종결을 선언하거나 main에서 초기값을 지정하여 사용할 수 있다.


아래의 예제는 입력된 정수로부터 차례로 1까지 출력하는 프로그램이다. For문을 사용하였고, 선언된 n값에서 1씩 차감하여, 그 값이 0보다 클때까지 for문을 작동시킨다.

출력은 아래와 같이 된다.

여기서 초기값을 n-1로 해주어, 입력한 수가 겹쳐서 출력되지 않도록 하였다. for문을 이용한 아래 또 다른 예제를 보자.


이 예제는 for반복문을 이용해, 하나의 숫자 Matrix를 만드는 것이다. 이 예제 같은경우, 2중 반복문을 사용하여, 한 열(Row)을 입력한 n 만큼 출력하고, 그 출력한 하나의 행(Column)을 n번 만큼 출력하는 구조이다. 이중 반복문도 C에서 정말 많이 사용되는데, 바깥 반복문이 먼저 실행되고, 내부 반복문이 작동한다. 코드는 아래와 같다.

위의 프로그램을 실행해, 정수 3 까지 3x3행렬을 만드는 Matrix를 출력해 보았다. 바깥쪽 for문에서 먼저 초기값 1을 가지고 내부의 for문으로 들어간다. 내부에서 for문이 1부터 입력받은 정수 n까지 수를 1씩 더해준다. 그리고 그것을 출력한뒤, 내부 for문이 끝나고, 또 바깥 for 문이 n번째 까지 계속 내부 for문을 반복하는 형태이다.

위와 같이 출력이 됨을 알 수 있다. 행과 열을 반복문을 수정해여 바꿔 줄 수도 있다.


마지막으로 특수문자 (*)을 입력한 갯수만큼 쌓아 올리는 코드를 만들어 보았다. 이 경우에도 이중 반복문이 쓰였으며, 코드는 아래와 같이 작성했다.

이 또한 바깥 for문에서 초기값 1로 내부 for문으로 들어간다. 내부 for문에서 바깥 for문이 들어온 수 만큼 (*)문자를 출력하고 끝난다. 그럼 바깥 for문은 1을 더해 하나가 더해진 수를 다시 내부 for문으로 보내어, n을 만족 할 때 까지 (*)문자를 출력할 것이다. 결과는 아래와 같다.


매우 간단하게 for문에 대해 알아보았다. 위의 예제들은 모두 While문으로도 표현이 가능하다. 나는 처음 예제를 풀어보기 전, 이중반복문 공부하는데 이해가 잘 안되어 애를 먹었지만, 코드를 완성하고 결과를 보고나니 오히려 더 빨리 이해가 되었던 것 같다. 다음엔 Local Function에 대해 공부를 해볼 것이다.

나는깊이 없이 예제들만 풀어 글을 게시하지만, 더 근본적으로 C 언어를 공부하고 싶은 사람들에게 아래의 책을 추천한다.


아래의 링크를 타고 가서 확인해 볼 수 있으며, PDF를 구하고자 하시는 분은 메일을 보내주시기 바랍니다.

https://g.co/kgs/Wm6Lgy

조회수 1,549회댓글 0개

최근 게시물

전체 보기

Comments


bottom of page