이번에는 C언어에서 반복문들의 중첩에 대하여 알아보겠습니다.







1. for 문의 중첩


while 문, do~while 문 의 중첩처럼 for 문 또한 중첩이 가능하고, 코드 간결화 및 가독성과 효율을 높여주는 방법으로 중첩을 사용합니다.


따로 설명 하지는 않고, 반복문들의 중첩에 대한 구구단 예제를 통해 알아보고, 익숙해지는 시간을 가지도록 하겠습니다.








2. for / for 구구단



(개인적으로 for 문이 제일 편했습니다.)








3. for / while 구구단








4. for / do~while 구구단








5. while / while 구구단








6. while / for 구구단








7. while / do~while 구구단









8. do~while / do~while 구구단








9. do~while / while 구구단








10. do~while / for 구구단






여러가지 반복문들의 중첩을 구구단을 통해 알아보았습니다.


순서만 바꿔주면 된다라는 것이 이번 글의 목적이 아닙니다.


C언어의 특징과 각 반복문들의 특징을 잘 알고, '계속 연습 해보면서 익숙해져야 된다'는 것이 이번 글의 요점입니다.


처음 접하시는 분들의 경우 while, do~while, for 문에 대해서 완벽히 이해하셨어도 바로 적용이 안 되시는 경우가 대부분입니다.

(물론 예외이신 분들도 존재합니다.)


따라서 구구단은 단순한 예제일 뿐이고, 여러번 중첩해서 사용하는 연습을 해보셔야 됩니다.


for / for 반복문을 다른 반복문으로 바꿔본다던지 하는 식으로 연습 해보시는 것이 가장 좋습니다.

(꼭 중첩만이 아니더라도, 중첩이 없는 반복문을 중첩이 없는 다른 반복문으로 바꿔본다던지 하는 방식도 좋습니다.)






이것으로 반복문들의 중첩에 대해서 알아보았습니다.





다음에는 '조건에 따른 흐름의 분기' 에 대해서 공부하고 글을 올리도록 하겠습니다.










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

C언어 조건문 - if 문 (2)  (0) 2017.02.16
C언어 조건문 - if 문 (1)  (0) 2017.01.26
C언어 반복문 - for문 (2)  (0) 2017.01.15
C언어 반복문 - for문 (1)  (0) 2017.01.12
C언어 반복문 - do~while문  (0) 2017.01.09

#상당히 늦었습니다. 죄송합니다. 오랫만에 와서 올리는 건데 짧은 내용에 대해 미리 사과의 말씀 드리고 진행 하도록 하겠습니다.




이번에는 do~while문에 의한 문장의 반복에 대해 알아보도록 하겠습니다.





1. do~while문 이란?


do~while문이란 '반복영역을 최소한 한번은 실행하는 구조'인 반복문 입니다.


do~while문은 while문과 거의 차이가 없습니다.


그러면 왜 do~while문이 필요하지? 라는 궁금증이 생기실 수 있습니다.


이와 관련하여 다음의 예제를 보도록 하겠습니다.



위의 예제에서 확인할 수 있듯이 do~while문과 while문은 차이가 거의 없습니다.


예제를 봐도 똑같지 않나? 라는 생각을 하실 수 있습니다.


이러한 궁금증에 대해서 위의 예제를 통해 다시 한 번 자세히 살펴보면 다음과 같은 사실을 알 수 있습니다.


1) 위의 예제의 경우에는 반복횟수가 이미 정해져 있습니다.

2) while문은 조건을 확인 하는 문장이 위쪽에 있는데 do~while문은 뒤쪽에 있습니다.

* 영어사전에서 do 는 '~하다' 라는 의미입니다.


여기까지 오셨으면 어느정도 눈치 채신 분들도 계실거고, 이러한 생각도 하실 수 있습니다.


단순하게 사용자의 입력이 완료될 때까지를 기다리는 계산기처럼 반복 횟수가 정해지지 않았을 경우 어떻게 하지?


C언어의 절차지향적 언어의 특성으로 위에서 부터 아래쪽의 순으로 순차적으로 실행 할 경우 do~while문의 반복영역은 무조건 한 번이 실행되나?


라는 궁금증이 생기실 수 있습니다.


우선 do~while문은 무조건 do~while문 의 중괄호 { } 사이의 영역은 무조건 처음에는 한 번 실행을 한 후, 조건을 검사합니다.


또 한가지 예를들면 사용자의 입력이 언제 끝날지 모르고, 무조건 한 번은 입력이 되어야 할 경우 do~while문을 사용합니다.


이러한 경우에는 while문 보다 do~while문이 훨씬 자연스럽기 때문입니다.


다음은 do~while문이 while문 보다 자연 스러운 상황을 나타내는 예제입니다.



위의 예제에서처럼 무조건 한 번은 실행이 되어야 할 경우에 do~while문을 사용하게 됩니다.


아직 이해가 되시지 않으신 분들은 다음 예제를 보도록 하겠습니다. (제 설명이 부족해서..)



위의 예제에서 보시는 것처럼 프로그램이 입력을 받기도 전에 종료가 되어 버렸습니다.


조건식을 만족하지 않아 while문의 반복영역을 실행조차 하지 않고 종료가 되는 것을 확인 하실 수 있습니다.


여기서 '그럼 조건식을 바꾸거나 조건에 사용된 변수를 다른 값으로 초기화 하면 되지 않나?' 라는 분들이 계실수도 있습니다.


당연히 가능합니다.


하지만 그렇게 하는 경우도 계실 수 있지만 '무조건 한 번은 실행 시키는 프로그램을 만들어야 되는데 while문 밖에 쓸 수 없다' 라는 문제에 직면 했을 경우 다음과 같이 do~while문이 while문 보다 자연 스럽다는 것을 아실 수 있습니다.



위의 예제에서처럼 무조건 한 번을 입력해야 되는데 '저는 do~while 문은 모릅니다. ㅠㅠ' 라는 상황이 생겼다고 가정하겠습니다.


그리하여 while문을 이용해서 작성을 해 본 결과 굉장히 부자연 스럽다는 것을 확인 할 수 있습니다.



이렇듯 do~while문은 입력을 받아 누적이 되어야 하는 프로그램의 경우 do~while문이 훨씬 자연스러운 것을 알 수 있었습니다.


또한 '최소한 1회는 반복영역을 실행하게 된다'는 점이 while문과의 가장 큰 차이점이라 할 수 있습니다.






이것으로 C언어 반복문 중 하나인 do~while문에 대하여 알아 보았습니다.



다음에는 for문에 의한 문장의 반복에 대하여 공부하고 글을 올리도록 하겠습니다.












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

C언어 반복문 - for문 (2)  (0) 2017.01.15
C언어 반복문 - for문 (1)  (0) 2017.01.12
C언어 반복문 - while문(2)  (0) 2017.01.02
C언어 반복문 - while문(1)  (0) 2017.01.02
C언어 printf 함수 와 scanf 함수  (0) 2017.01.01

+ Recent posts