본문 바로가기

Language/C

<C언어 기초> 03. 루프

1. 정수인 변수

 - 우리는 지난 시간에 문자열 변수를 string으로 지정한다는 것을 배웠다. 그렇다면 정수는 어떻게 지정할까.

 

int counter = 0;

 - 위는 counter라는 변수를 0으로 할당한 코드이다. 정수(integer)는 int를 사용한다.

 

 - 이름이 카운터이므로 1을 추가하는 코드를 작성해보자.

 

counter = counter + 1;

 

 - 위처럼 작성하면 간단하게 1이 추가되어 counter에 새로 할당된다. 하지만 1씩 추가할일은 매우 많은 경우에서 발생하는데 이 때마다 저렇게 길게 작성할 필요는 없다.

 

counter += 1;
counter++;

 

 - 위의 두가지 코드 모두 같은 기능을 수행한다.

 

2. 반복문(loop)

* while문

 - 루프는 어떤 일을 계속 반복하는 것을 말한다. 컴퓨터는 같은 일을 반복수행하는 데 최적화되어 있으므로 C에서 이를 구현해보자.

 

 - 반복문은 while문과 for문이 있다.

 

while (true)
{
    printf("hello, world\n");
}

 - while문은 조건을 넣고, 조건이 부합하면 코드블록을 반복수행한다.

 

 - 위는 조건에 단순히 true를 넣었으므로, 영원히 반복된다. 그렇다면 우리가 원하는 횟수만큼 반복문을 돌리려면 어떻게 해야 좋을까.

 

int i = 0;
while (i<10);
{
    printf("hello, world\n");
    i = i + 1;
}

 

 - 프로그래밍에서 카운터 변수는 i를 관행적으로 쓰고있다. 그리고 카운팅을 1이아닌 0부터 세기 시작함을 기억하자.

 

 - 위의 코드는 i가 10이 될 때까지 반복될 것이다. 

 

 - i가 10이 되면 while문의 조건은 거짓이되고, 코드블록이 실행되지 않는다.

 

 - 즉 i는 0부터 9까지 총 10번 반복문을 돌며 커질 것이고, 출력문도 10번 시행된다.

 

* for문

 - 위와 같이 변수를 선언하고 변수를 조정하는 반복은 for문에 특화되어 있다.

 

for (int i = 0; i < 10; i = i + 1)
{
    printf("hello, world\n");
}

 

 - for문은 3개의 인자를 받는다. 가장 먼저 변수를 할당 받고, 조건을 받고, 변수를 반복때마다 어떻게 변화시킬지를 작성한다.

 

 - 따라서 위코드는 앞서 보았던 while문과 완전히 동일하게 작동한다.

 

 

 


 

 

 

참고

 

 

 이 글은 하버드 대학교 David Malan 교수CS50 강의를 수강 후 정리하며 쓴 글입니다. 코드는 C언어로 작성되었으며, 개발환경은 CS50 Sandbox에 최적화되어 있습니다. 일부 라이브러리는 다른 환경에서 별도의 설정이 필요할 수 있습니다.

 

 

 

CS50 공식사이트

 

CS50

Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, r

cs50.harvard.edu

 

부스트코스

 

다 함께 배우고 성장하는 부스트코스

부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다.

www.boostcourse.org

 

CS50 Sandbox

 

CS50 Sandbox

Temporary programming environments for students and teachers.

sandbox.cs50.io

 

 

 

'Language > C' 카테고리의 다른 글

<C언어 기초> 06. 배열  (0) 2021.01.27
<C언어 기초> 05. 사용자 정의 함수  (0) 2021.01.24
<C언어 기초> 04. 자료형과 연산자  (2) 2021.01.23
<C언어 기초> 02. 조건문  (0) 2021.01.21
<C언어 기초> 01 출력과 문자열  (0) 2021.01.20