C언어 반복문,while문에 대해

프로그래밍/C 2018.09.08 댓글 Plorence
반복문에는 3가지 종류가 있습니다. 의미 그자체로 반복한다는 의미입니다.
바로 while,do~while,for문입니다. 그중에 while문을 해볼겁니다.

while문

while문은 특정조건을 주고 그 조건을 만족하는 동안 특정영역을 계속해서 반복되는 구조입니다.
조건을 불만족하면 특정영역의 반복을 안하게 됩니다. 개념 자체는 매우 쉬운편에 속합니다.

while문을 사용하는 방법은 아래의 코드와 같습니다.

1
2
3
while(조건){
//반복할 코드
}
예제코드

의외로 간단합니다.

어떨때 필요한가?
만약 hello world!라는 문자열을 1000번 출력하는 프로그램을 짜본다고 가정합시다.
간단하게 생각하면 "hello world!"라는 문자열을 출력하는 함수를 1000번 호출하게 한줄 한줄씩 써주면 됩니다.
하지만 코드가 엄청나게 늘어나고 시간도 오래걸립니다.(언제 Hello world!를 출력하는 함수를 1000번 써줍니까?)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(void){
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");
    printf("hello world!");    
    //생략
return 0;
}
예제코드
위 코드처럼 "hello world!"를 출력하는 함수를 1000번 호출하게 하면 개발자 돌아버립니다.
하지만 반복문이 있기에 매우 간단히 코드를 줄일 수 있습니다.
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(void){
    int num = 0;
    while(num < 1000){
    printf("hello world!");
       num++;
    }
  return 0;
}
예제코드
위 코드에 비해 줄 수가 엄청나게 줄어들었습니다. 그러면 유지보수 하기에도 좋습니다.
더 출력하고 싶으면 반복문 조건만 수정해주면 되는거고요.

예제를 통해 알아봅시다.
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(void)
{
    int num = 0;
    while (num<5){
        printf("hello world \n");
        num++;
    } 
}
예제코드
풀이
먼저 while문을 사용할것이라고 선언을하였고 그다음 괄호안에 조건을 써놓았습니다. 이 조건을 만족할시 블럭(중괄호)안에있는 코드를 실행하는것입니다.
변수 num은 0이고 조건문에 num < 5이라고 썼으니 0 < 5가 되어버리는겁니다. 이것만 봐도 참인걸 알 수 있습니다.
증감연산자를 사용해 변수 num의 값을 1올렸습니다. 값을 올려주는 이유는 hello world를 5번만 출력하기 위해서 입니다.
값을 올려주지 않으면 계속 0 < 5가 될것이니 무한루프가 되어버립니다.즉  5번의 출력 결과를 원하기 때문에 증감연산자를 써줍니다.

또는 중괄호가 필요없는 경우도 있습니다.
1
2
3
4
5
6
7
8
#include <stdio.h>
int main(void)
{
    int num = 0;
    while (num<5)
        printf("hello world \n");
    return 0;
}
예제코드
위코드처럼 실행할 코드가 한줄이면 중괄호를 안써줘도 되지만 이건 코딩스타일의 차이 입니다.
한줄이라고 꼭 빼줘야 하는것도 아니며 개발자 차이입니다.
만약 실행할 코드가 여러줄인데 중괄호를 써주지 않는다면,반복문의 시작줄 바로 아래의 코드만 실행하게 됩니다.

그래서 전 조금이라도 헷갈리지 않기 위해 중괄호를 반드시 써주는 편입니다.




댓글