c_4

2022. 5. 10. 23:29c,c++ 기본/진짜 기본

320x100
안녕하세요 대학생개발자입니다.

 

이번글에서는 반복문에 대해서 간단히 알아보겠습니다.

반복문이란 말 그대로 코드가 반복되는 구간을 의미하는거겠죠...

 

그리고 거의 모든 반복에는 조건이 있습니다.

우선 반복문에 어떤것들이 있는지부터 봐야할 것 같습니다.

 

첫번째로 for문이 있습니다.
두번째로 while문이 있습니다.
세번째로 do while문이 있습니다.

 

먼저 조건문에 공통적으로 들어가는 구성에 대한 얘기를 먼저 해보겠습니다.

1. 초기식

2. 조건식

3. 증감식

조건식에는 위의 세가지 구성이 들어가는데요.

 

초기식의 경우에는 말그대로 조건식에서 사용될 값을 초기화 해주는 부분입니다.

초기화되지 않은 값을 사용하게되면 visual studio에서는 컴파일 에러를 뱉어주지만 그외 다른 컴파일러에서는 에러를 뱉어주지 않는 경우도 있기때문에 원하지 않는 로직을 들어가게 될 경우도 존재합니다.

그걸 방어해주기 위한 부분이라고 보시면 될 것 같습니다.

 

조건식은 루프의 진행 여부를 위한 하나의 판단문입니다.

물론 조건이 없는 경우도 가능합니다.

그 경우는 우리가 일상적으로 사용하는 무조건이라고하죠.

조건없이 실행하는 구문 물론 있지만 극도의 성능충이 아니라면 일반적으로 가독성이 좋지않고 모양새가 예쁘지 않아 일반적으로 잘 사용하지 않습니다.

 

증감식의 역할은 마감의 조건을 만들기 위한 부분입니다.

만약 i < 10이라는 조건이 참일때 반복문이 실행한다고 했을때  i를 10보다 큰값으로 만들어주는 부분이 없다면 이 조건식은 항상 참일것이겠죠.

항상 참이기 때문에 영원히 끝나지 않는 무한루프를 돌게될겁니다.

그것을 방어하기 위한 부분입니다.

 

뭐 구성요소는 다음과 같이 있고 단순합니다.

위에서 봤던 반복문들을 하나씩 보면서 말씀드리겠습니다.

 

먼저 while문에 대한 얘기부터 해볼건데요.

while문은 다음과 같이 사용하실수 있습니다.

먼저 while문에는 다음과같은 3개의 구성이 들어가야하는데요.

 

while문에서는 조건식을 제외하고는 생략 가능합니다.

 

조건식은 while루프를 수행 할것인지 말것인지에 대한 

 

while문의 행동은 단순합니다.

while( ... ) 이 괄호안에 들어가는 조건이 참일경우 계속 실행하게 됩니다.

즉 위의 그림에서 보이는 while문은 10회 Hello World를 출력한뒤 반복문을 탈출하게 될겁니다.

 

순서는 다음과 같습니다.

1-> 2-> 3-> 2-> 3 -> 조건식의 조건이 false이면 튕겨져 나감

 

다음으로 do while문에 대한 얘기를 해볼겁니다.

do while문은 조금 특이한 문법이라 나중에 설명드리려고 했으나, while과 맥락을 비슷하게 하는 부분이 있어서 먼저 설명을 드리겠습니다.

 

do while문의 구성 또한 while문과 동일합니다.

역시나 while문과 동일하게 조건식을 제외하고는 생략이 가능합니다.

대신 do while의 차이점은 조건문에 들어가기 이전에 실행문과 증감식이 있다는 점입니다.

그로인해서 무조건 1회는 실행하고 그뒤에는 실행할지 말지를 결정하는 그런 반복문이 됩니다.

그러다보니 while문에서 순서상 2번에 해당했던 조건문이 마지막인 3번째로 밀리게 됩니다.

 

실행순서는 다음과 같습니다.

1 -> 3 -> 2 -> 3 -> 2-> false면 튕겨져 나감

 

 

마지막으로 for문에 대한 얘기를 해보려고합니다.

음... for문은 while문과는 살짝 생김새가 다릅니다.

하지만 순서상으로는 do while보다는 while문에 가까운 구조입니다.

우선 for문의 생김새는 다음과 같습니다.

처음보면 조금 햇갈릴 수도있으나 나중에 적응이 되시면 for문이 가독성이 가장 좋은 코드처럼 보이실겁니다.

 

먼저 특징으로는 이제 초기식이 for문 안에들어와 있을 수 있습니다.

우리는 변수를 while문에 필요한 변수를 선언하기 위해서 while이 아닌 다른 구간에서 선언을 한 뒤 그 변수를 사용하는 부분이 있었습니다.

하지만 for문에서는 순수하게 for문만을 위한 변수를 선언할 수 있는거죠.

 

그리고 또 다른점은 블럭을 끝내고나서 증감식을 진행한 후 조건식으로 들어오게 됩니다.

이전의 경우에는 블럭안에 증감식이 명시가 되었어야 하지만 이제는 증감식 또한 for문안에 들어가있으므로써 더 명시적으로 표현할 수 있게 된것이죠.

 

마지막으로 for문은 무조건이라는 경우가 가능합니다.

말그대로 조건문이 없어도 된다는 의미입니다.

대신 조건문이 없으면 내부에서 for문을 나갈 수 있는 방어장치를 만들어 둬야할겁니다.

그렇게 하지 않으면 무한루프에 빠지게 될테니까요.

 

당연하겠지만 어떤 프로그램을 설계하시든 빠져나갈 수 있는 조건이 없는 반복문은 존재해서는 안됩니다.

그건 결함이니까요...

 

음... 이건 나중에 쓰다보시면 깨닫게 되시겠지만

일반적으로 횟수가 정해져있는 반복문의 경우에는 for문을 쓰시는게 더 편리할것이고,

횟수가 지정되지 않은 반복문의 경우에는 while문을 쓰시는게 더 편할겁니다.

 

do while의 경우에는 좀 예시가 적절하지 않아서 여기서 설명은 안드리겠습니다만,

간단히 말씀드리면 메크로에 사용하는 경우가 많고, 반복된 코드를 줄일 경우에 사용되는 경우가 있습니다.

 

그럼 여기까지 정리를 하고 이번글도 여기서 마치도록 하겠습니다.

긴글 읽어주셔서 감사합니다.

안녕히 계세요

 

 

 

320x100

'c,c++ 기본 > 진짜 기본' 카테고리의 다른 글

c_3  (0) 2022.05.10
c_2  (2) 2022.05.08
c_1  (0) 2022.05.04