본문으로 바로가기

C언어 변수에 대해 알아보자 While 문 강의

category IT 2017. 9. 16. 19:16

반복문을 만드는 방법 1 - while문

while 문은 일반적으로 프로그래밍을 할 때 자주 사용하는 것 중 하나이며 while 루프(LOOP) 라고도 합니다.

여기서는 while 문과 관련하여 다음과 같이 세가지를 다룰 예정입니다.

* while 문의 기본 문법

* while 무한 루프

*중첩 while문

while 문의 기본 문법

먼저 while의 사전적 의미부터 알아보겠습니다. while 은 '~하는동안' 의 의미가 있습니다. 컴퓨팅 세계에서의 while 문의 의미는 어떤'조건'이 '참'인 동안 '반복해라'는 의미 입니다. 다음은 while문의 구조를 나타내고 있습니다. while 문의 괄호안에 조건을 쓰고 중괄호 안에 반복할 내용을 쓰게 됩니다. while문은 명시한 조건이 참인동안은 반복할 내용을 계속해서 수행합니다

while( 조건식 )

{

반복할내용

}

간단한 예제를 가지고 while문을 배워보겠습니다.


 


 

조건 num<5 가 참(1)인지 (0)인지를 판단하는 비교 연산을 수행합니다. 참이면 수행하고 거짓이면 반복문을 종료합니다.

하지만 num++; 라는 문장으로 1씩더해지기 때문에 5가되버리니까 반복문이 거짓이 되버리니까 반복문이 종료되게 되는거죠 !

이해가가시나요 ?

인제다음예제를 가지고 while 문의 기본문법을 확실히 다루겠습니다.


 


 

즉, 11이되면 프로그램의 실행흐름은 반복문을 수행하지않고 반복문을 종료하게됩니다.

while 무한 루프(무한 반복문)

무한 루트(무한 반복문)란 종료되지 않고 무한히 실행되는 반복문을 의미합니다.

다음예제는 while문을 이용한 대표적인 무한루프의 사례입니다.


 


 

보시면 while(1) 이란말은 무조건 참 이란말이기 떄문에 무한히 반복되게 되는거죠.

중첩while문

중첩 while 문은 while 문 내부에 또 다른 while 문이 있는 것을 말합니다. 이처럼 반복문을 중첩해서 사용할수 있는데, 먼저 구구단 계산 프로그램을 가지고 중첩 while 문을 알아보겠습니다.


 


 

이런식으로 잘출력이 됩니다.

다음예제를 실행해서 출력결과를 분석해 보세요 ! 그러면서 중첩 while 문의 의미를 잘 이해하도록 될 것입니다.

실행 결과는scanf()함수를 통해 입력받은 숫자를 단으로 출력하는데 내림차순으로 출력하게 됩니다.



 


 


 

반복문을 만드는 방법 2 - for문

지금까지 while 문을 이용하여 c언어에서 반복문을 구현하는 방법에 관하여 알아 보았습니다.

이제부터는 for 문을 사용하여 반복문을 표현하는 방법을 알아보겠습니다. for문에서 주로 다룰 내용은 다음과 같습니다.

*for문의 기본문법

*for 무한 루프

*중첩 for문

for 문의 기본문법

for 의 산전적 의미도 while과 마찬가지로 '~하는동안' 의 의미가 있습니다. 그래서 for문도 조건이 참인 동안 계속해서 반복하라는 의미입니다. 반복문을 만들때 for 문과 while 문중 어느것이 더 좋다고 할수는 없습니다.

for(초깃값;조건값;증감값)

{
반복할내용

}

해석:조건값이 참인 동안 반복할 내용을 반복적으로 수행해라 !
그러나 for문을 이용하면 while문보다 반복 횟수를 표현하는 것이 더 편리합니다. for문은 초깃값,조건값,증감값 세부분을 세미콜론( ; ) 으로 구분하고 있습니다. 특히, 증감값에 i++이 나 i=i+1과 같은 표현을 사용하면 for문이 수행할 반복 횟수를 보다 쉽게 표현할 수 있습니다.

다음예제를 보고 for 문에 대해 알아보죠


 


 

while 문하고 비슷하지만 for문은 초깃값과 조건값 증감값을 지정해줄수있죠

그래서 for 문이 더편합니다.

for(초기값; 조건값; 증감값)

{
반복할 내용

}

해석 : 1번 초깃값은 무조건 한번만 수행하고 2번조건값,3번반복할 내용, 4번 증감값은 반복적으로 수행하라 !

다음예제는 for 문의 사용법에 관한 이해를 돕기 위해 while문 예제를 for 문으로 변환한 코드 입니다.


 


 

1. 변수 i의 값을 0으로 초기화

2. i가10보다 작거나 같은지 (i<=10) 비교 연산을 하고 결과가 참이면

3. 'sum=sum+i ' 을 수행하고 printf()함수를 수행

4. i++ 실행

다시 반복 조건값이 10이 될때까지

for문의 조건값(i<=10)이 참인경우 반복수행하고 거짓인경우 반복 수행을 종료합니다.

for 문의 무한루프

다음 예제는 for 문을 이용한 대표적인 무한 루프의 사례입니다. while(1)과 같은 while무한루프와 어떤 차이가 있는지 확인해보죠.


 


 

실행결과 계속 무한루프가 발생

i=0 으로 선정햇고 조건값을 1이라고 했으니 참이되니까 무한루프가 됩니다.

중첩 for 문

for문도 while 문처럼 중첩하여 사용할 수있습니다. 이해를 돕기위해 구구단 출력 프로그램을 한번 살펴보겠습니다.


 


 

이게 제가 아는 반복문의 전부입니다.

들어주셔서 감사합니다.


'IT' 카테고리의 다른 글

Window 10 무료 업그레이드 서두르세요!! 2일남았습니다  (0) 2016.07.28