for, 1 Posts.

셈틀꾼 C언어 강의 제 2강.

Date
2008/03/28 15:17
Author
ApPLe
Categories

셈틀꾼 신입생 C언어 강의 제 2강.
반복문 , 반복문 응용

1. 반복문이 뭐임?

일단 , 반복문을 써야 하는 이유부터 설명하도록 하겠습니다. 예를 들어 설명해 보겠습니다.

만약 "안녕하세요" 라는 글을 10번 출력한다고 생각해봅시다. 그러면 , 앞에서 배운 printf()를 써서 출력해야 하지요.
 
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );
printf ( "안녕하세요!\n" );

..이렇게 하는건 솔직히 귀찮습니다. 똑같은걸 10번이나 써야 한다니!
그런데, C언어 및 기타 다른 프로그래밍 언어에서 제공하는 반복문을 쓰면, 단순한 구문으로 간단히 출력할 수 있습니다.
한마디로 , 반복문은 , 프로그래머가 여러번 해야 할 작업을 , 간단한 로직(logic)으로 쉽고 간단하게 구현하게 해 주는 구문입니다.

2. C언어의 반복문

C언어에서도 반복문이 있습니다. 그 중에는 for문 , while문 등등이 있지만, 여기서는 가장 자주 쓰이는 for문부터 알아보도록 하지요.

일단 , for문을 쓰기위해서는 int형 변수가 하나 필요합니다. ( 관용적으로 변수명으로는 i , j 가 많이 쓰입니다. )

일단 int형 변수 i를 선언해 보도록 하겠습니다.

int i ;

 그리고 위에서 말한 , "안녕하세요"를 10번 출력하는 것을 동일하게 for문을 사용하여 구현해 보도록 하겠습니다.

for ( i = 0 ; i < 10 ; i++ )
{
    
printf ( "안녕하세요!\n" );
}

이렇게 하면 놀랍게도 , 위에서는 printf()를 10번이나 써야 했던 것을 , 이 간단한 구문으로 똑같은 결과를 낼 수 있습니다!

자세히 for문을 뜯어보도록 하겠습니다.
저기서 , i 가 0부터 시작해서, 10 미만 , 그러니까 9가될 때까지 for문의 중괄호 ' { } ' 안에 있는 내용을 계속 반복해서 실행시킵니다.

한번 실행될 때마다 오른쪽의 ' i++ ' 이라는 구문 때문에 i는 1씩 증가하게 되며 , 결국 , for 문 중간의 ' i < 10 ' 이라는 조건을 만족하게 되면 , for문을 빠져나가게 됩니다.


3. 반복문 응용

반복문은 , 위에서 소개한, 정해진 갯수만큼 똑같은 작업을 반복시키는 것 외에 , 더 멋진 기능을 수행할 수 있습니다!

반복문 내에서 돌아가는 i값을 잘 이용하면 , 여러 가지를 할 수 있습니다.

예를 들어보겠습니다.

만약 , 1에서 100까지 더하는 프로그램을 만든다고 생각한다면,
다음과 같은 코드로 쓸 수 있을 것입니다.
일단, 총 더해진 결과값을 저장하는 변수인 res와 , 반복문을 위한 변수 i 를 선언합시다.

( res는 0으로 초기화 해야합니다. 왜 그런지는 수업시간에 설명하도록 하겠습니다! )

int i ;
int res = 0 ;

그리고 , 위에서 알아본 반복문을 써봅시다.

for ( i = 1 ; i <= 100 ; i++ )
{
    res = res + i ;
}

여기서 , i 는 맨처음에 1로 초기화되며, 100이 될때까지 i 는 1씩 증가하며 for문의 중괄호 안에있는 res에 값을 더해주게 됩니다.

( res = res + i ; 여기서 res에는 우변의 res + i 가 계산되어 저장되기 때문입니다. 제 1강에서 =의 용법을 참조하세요. )

그 외에 , 반복문에서는 i 의 값이 늘어나는 것 외에 , 감소하는것도 가능합니다.
만약 , 100부터 시작하여 한 번 for문을 도는데 1씩 감소하게 해서 0까지 가게 하려면 , 다음과 같이 하면 됩니다.

for ( i = 100 ; i >= 0 ; i-- )
{
}


4. while문은 뭐임?

C언어에는 while문 외에도 다양한 반복문들이 있습니다. 그중의 하나가 while문입니다!
for문과는 큰 차이가 있는데요, 일단, while문이 어떻게 생겨먹었나를 보도록 하겠습니다.
일단 , int형 변수 i 를 선언합니다.

int i = 1;

그리고 , 다음과 같이 쓴다면 , 위에서 구현해보았던 "안녕하세요"를 10번 출력하는 프로그램이 됩니다.

while ( i <= 10 )
{
     printf ( "안녕하세요!\n" );
    
i ++;
}

for문과 비슷하게 , while문에서 괄호안의 ( i <= 10 )은 , " i가 10 보다 적을때는, 계속 while문 안을 돌아라. " 라는 의미가 됩니다.
그리고 여기서 , 하단에 있는 i++을 눈여겨 봅시다.

위에서 설명했다시피 , i++은 , i 의 값을 하나 증가시켜주는 역할을 합니다
그렇다면 , while문에서 하단의 i++ 이라는 구문을 빼 버리면 어떻게 될까요?

while문을 돌아서 다시 ( i <= 10 ) 이라는 구문을 만나게 되더라도 , i가 증가하지 않기 때문에 , 결국 계속 while문을 돌게 되버립니다

그러면 당연히 화면은 "안녕하세요" 라는 글자로 가득차버립니다. 요런 상태를 "무한루프" 라고 합니다.

 for문과 다른점을 정리해 보겠습니다.

1. 값을 while문 밖에서 초기화 해주어야 합니다.

2. 값을 증가시키는 것도 for문처럼 자동으로 처리해주지 않고, 안에서 처리해주어야 합니다. 즉, 무한으로 계속 while문을 돌릴수 있습니다.


ApPLe
2008/03/28 15:17 2008/03/28 15:17
Tag
Trackback
Comments
video panties breasts  2008/05/23 05:01  Reply  Delete
너는 위치를차가운 만들었다!
girls paintball clothing  2008/05/23 07:19  Reply  Delete
중대한 축하!경이롭 위치 위치!
girl bikini japan  2008/05/23 07:43  Reply  Delete
우수한 위치! 많은 감사.
nude pictures of actresses  2008/05/24 00:55  Reply  Delete
걸출한 블로그!
tiffany tower video gallery  2008/05/24 00:55  Reply  Delete
좋은 영역! 걸출한 영역!
celebrity message boards  2008/05/24 01:03  Reply  Delete
좋은 영역! 걸출한 영역!
best orgasm  2008/05/24 01:11  Reply  Delete
많은 감사 위치! 우수한 나는 너의.
1