여러분 안녕하세요. 세이버입니다.
이번 강에서는 for 함수에 이어서 다른 반복문인 while 함수를 소개해드릴 겁니다..
반복문이 무엇인지와 for 함수에 대한 설명은 이전 강의를 참고해주세요.
세이버의 C언어 강의 13강_반목문이란 무엇인가 Part 1 (for 함수) : https://poci.tistory.com/20
1. while 함수
while 함수는 대표적인 반복문 중 하나로, 다음의 구조를 가지고 있습니다.
while 함수의 구조
while(조건)
{
반복할 코드
}
for함수와 다른 점은 () 안에 조건이 들어간다는 것입니다.
while의 뜻은 '~하는 동안'입니다.
즉, while 함수는 조건이 참인 동안 반복을 하는 함수입니다.
실습을 통해 설명드리겠습니다.
위 코드를 어디서 보신 적 있지 않나요??
13강을 보고 오신 분들은 바로 아실 겁니다.
저번 강에서 for 함수를 설명드릴 때 사용했던 코드와 비슷하게 생겼습니다.
둘을 비교해보면 for 함수는 () 안에 초깃값, 조건식, 증감식이 다 있는데 비해, while 함수는 ()안에 조건식만 들어가 있어서 초깃값과 증감식은 따로 기입해줘야 합니다.
while 함수의 동작 과정은 for 함수에 비해서 아주 간단합니다.
1. while 함수의 조건을 확인한다.
2. 조건이 참이면 코드를 실행하고 거짓이면 while 함수를 넘어간다.
3. 1로 돌아가 반복한다.
for 함수는 초깃값, 조건식, 증감식이 다 들어있어서 일일이 확인하느라 과정이 복잡했습니다.
그러나 while 함수는 조건식만 있어서 과정이 간단합니다.
만약에 증감 식이 없으면 어떻게 될까요???
그러면 끝도 없이 반복되는 무한루프에 빠지게 됩니다.
2. 무한루프
무한루프(Infinite loop)란 코드가 종료되지 않고 무한적으로 반복되는 것을 뜻합니다.
하루라는 영화를 아시나요??
이 영화는 주인공이 똑같은 반복되는 하루에 갇혀서 벌어지는 이야기를 다루고 있습니다.
여기서 주인공은 하루가 무한적으로 반복되는 무한루프에 빠졌다고 볼 수 있습니다.
프로그래밍에서도 마찬가지로 반복문을 끝낼 조건을 기입하지 않으면 코드가 반복문을 빠져나오지 못하고 무한히 실행되는 무한루프에 빠지게 됩니다.
실습으로 설명드리겠습니다.
이번 강에서 배운 while 함수를 가지고 무한루프를 만들어 보았습니다.
보시면 while 함수에 조건으로 1이 들어있고 1은 참을 뜻하므로 반복문을 실행합니다.
하지만 while 함수를 끝낼 조건이나 break가 없으므로 while 함수가 무한적으로 실행되게 됩니다.
따라서 실행하시면 이렇게 "안녕하세요. POCI입니다."가 계속 찍힐 겁니다.
실행을 멈추고 싶다면 엑스 버튼을 누르시거나 Ctrl+C를 누르세요.
for 함수로도 무한루프를 만들 수 있습니다.
7줄을 보시면 for 함수에 조건식이 빠져있습니다.
그래서 for 함수를 종료할 조건이 없으므로 무한루프에 빠지게 됩니다.
3. 중첩 while 함수
이 장에서는 while 함수를 두 번 중첩하는 방법을 알아보겠습니다.
방법은 13강의 중첩 for 함수와 같습니다. while 함수 안에 while 함수를 쓰면 됩니다.
중첩 for 함수를 설명할 때 구구단을 예시로 들었으니까, 중첩 while 함수도 구구단을 예시로 들겠습니다.
이렇게 while 함수 안에 while 함수를 넣음으로써 중첩 while 함수를 사용할 수 있습니다.
직접 타이핑하여 결과를 확인해주세요.
코드의 동작 방식도 13강에서의 중첩 for 함수와 비슷하니 참고 바랍니다.
이번 강은 여기서 마치겠습니다.
다음 강에서는 또 다른 반복문과 반복문의 팁에 대해서 소개해드리겠습니다.
오늘도 수고하셨습니다.
정리
- while함수 : 조건이 참인 동안 코드를 반복적으로 실행하는 함수
- 무한루프 : 반복문을 종료하는 조건이 없어 무한적으로 실행되는 상태
- 중첩 while 함수 : while 함수 안에 while 함수를 쓰는 것
강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.
궁금하신 점이나 질문은 댓글이나 메일을 남겨주세요.
'C언어' 카테고리의 다른 글
세이버의 C언어 강의 16강_ 자료형이란 무엇인가 (0) | 2019.04.12 |
---|---|
세이버의 C언어 강의 15강_반목문이란 무엇인가 Part 3 (do while 함수와 break+continue) (0) | 2019.03.16 |
세이버의 C언어 강의 13강_반목문이란 무엇인가 Part 1 (for 함수) (0) | 2019.03.05 |
세이버의 C언어 강의 12강_조건문(switch 함수) (0) | 2019.02.26 |
세이버의 C언어 강의 11강_조건문(if 함수) (0) | 2019.02.17 |