10장 - C언어 반복문(repetitive statement in C)(2)
- 반복문이란 조건이 참일 경우, 특정 루틴을 반복적으로 수행하는 것
이번에는 지난 9장에 이어 반복문에 대해서 조금 더 알아보도록 하겠습니다.
지난 강의에는 for에 대해서 했고, 이번에는 while과 do~while에 대해서 다룰 예정입니다.
반복문의 구조는 약간씩 다르지만, 그 기본은 같다는걸 명심하시면 쉽게 습득하실 수 있을 겁니다.
※ 조건이 참일 경우, 특정 루틴을 반복적으로 수행하는 것
1. while
|
while의 기본 구조는 위의 예제와 같습니다. for문에 비해 상당히 간단한 구조죠?
조건만 존재하고, 해당 조건이 참이면 반복 루틴을 수행하는 구조로 되어있습니다.
for는 초기화와 증감식을 통해, 일정 반복 후 조건을 거짓으로 만들어 루프를 탈출하지만,
while의 경우 조건문만 존재하기 때문에, 별도로 루틴에 탈출하기 위한 조건이나
조건식이 거짓이 되도록 만들어줘야 합니다.
그럴 것이면 for를 쓰지 왜 while을 쓰냐 생각하실 수도 있습니다.
코딩은 표현의 자유이기 때문에, 본인이 편하신 것을 사용하면 됩니다.
while의 경우 보통 반복 횟수가 불분명할 때 사용되고, for의 경우 반복횟수가 정해져 있을 때 사용합니다.
|
위의 예제는 while을 이용하여 1부터 10까지 출력하는 예제입니다.
증감식은 루프 안에 추가적으로 작성해 주어, 10번 반복 후 조건이 거짓이 되어 루프를 탈출하게 됩니다.
2. do~while
|
while과 do~while은 매우 흡사한 구조를 가졌습니다. 그러나 위의 예제에서 보실 수 있듯이
반복 내용이 조건부보다 먼저 위치하고 있습니다. 구조 그대로 두 반복문의 차이점은
while의 경우 조건부를 먼저 검사하기 때문에, 진입 시 조건이 거짓이면 수행하지 않습니다.
그러나 do~while은 이름 그대로, 먼저 한 번 수행한 후에 조건을 검사합니다.
|
위의 예제를 보시면, while문의 조건이 i < 1로 되어 있습니다. 즉 i의 값이 1보다 작아야 루프를 수행합니다.
그러나 line.5 에서 i를 1로 초기화를 해주었기 때문에, 조건이 거짓이라 수행하지 않습니다.
|
위의 do~while의 예제를 보시면, 이전 while문과 동일한 조건과 반복 내용을 포함하고 있지만,
do~while의 특성으로 인해 한 번 먼저 수행이 된 후에 조건을 비교합니다. 따라서 조건의 참, 거짓 여부를
떠나 무조건 한 번 수행이 됩니다.
3. 실습 문제
while 또는 do~while만 사용하여 구현한다.
(1) 입력받은 수가 소수인지 판단하라.
(2) 양수 또는 음수를 입력 받아, 입력 받은 모든 수를 누적하라.
( 단 0 입력 시 종료하고, 최종 수를 출력하라. )
(3) (2)번의 응용으로, 입력 받은 수가 홀수이면 더하고, 짝수이면 빼라.
( 0을 입력 받으면 종료하고, 최종 수를 출력하라. )
※ 정답은 아래 링크
http://leeyongjeon.tistory.com/category/프로그래밍%20언어들/C%20문제풀이
'프로그래밍 언어들 > C' 카테고리의 다른 글
C언어 분기문(return, break, continue) (0) | 2016.11.04 |
---|---|
C언어 전위연산 및 후위연산 (2) | 2016.10.31 |
9장 - C언어 반복문 for문(repetitive statement in C) (0) | 2016.10.28 |
8장 - C언어 조건문(Conditional statement in C)(2) (0) | 2016.10.27 |
7장 - C언어 조건문(Conditional statement in C)(1) (0) | 2016.10.26 |