프로그래밍에서 중요한 기초적인 명령의 흐름을 제어하는 것은 조건과 반복이다.
사람은 반복된 작업을 하는 것을 싫어하고 하다보면 틀리거나 오류를 많이 발생하게 된다
하지만 컴퓨터는 주어진 절차에 따라 반복된 작업을 시키는대로 하기 때문에 싫어하거나 오류가 없다.
C언어에서 많이 사용하는 반복문의 명령은 while(또는 do while)과 for이다.이 두 가지는 서로 동치관계로 표현이 가능하다.(상호간에 변환이 가능하다는 것이다.)
1. for를 사용법을 살펴보자
for(반복전 실행/준비내용(1번) ; 조건검사내용(2번) ; 한번 실행 후 처리(3번) )
{ //코드 블럭 (4번)
...
}
다음 명령(5번)
실행순서를 잘 이해해야 한다.
1번 -> 2번 -> 4번 -> 3번 -> 2번 -> 4번 -> ... -> 5번 순으로 계속적으로 반복된다.
1번은 한번만 실행.(보통 초기조건 또는 시작조건으로 많이 사용된다.)
2번은 참과 거짓에 해당하는 조건. 반복을 계속할 것인지 끝낼것인지 결정하게된다. 이때 거짓이면 더 이상 반복되지 하지 않는다.
4번은 반복되어야 할 문장이 온다. 이때 문장이 하나일때에는 { } 를 생략하고 보통 사용하고, 문장이 여러개 일때에는 { 4번 ....} 로 작성한다.
3번은 반복을 한 후 실행하는 부분. 보통 반복의 시작 부터 끝까지 가기 위한 증가, 또는 감소를 나타내는 형태가 된다. ,(콤마)로 구분하여 여러 문장을 작성할 수도 있다.
1번~5번까지에 명령이 반드시 있어야 하는 것은 아니다. 대신 for 명령속에 세미콜론(;)는 반드시 있어야 한다. 다음과 같은 형태도 가능하다는 것이다.
for( ; ;){
;
}
2. while를 살펴보자
while(1번)
{
//코드블럭(2번)
...;
}
3번
실행순서는 1번->2번->1번->2번...-> 3번
1. 먼저 1번을 검사한다.(1번에는 조건이 와야 한다.(즉 참 또는 거짓인 명제 예를 들어 a>3 등등의 형태))
2. 2번 코드블럭을 실행한다.
3. 다시 1번을 검사한다.
4. 2번 코드블럭을 실행한다.
5. 1번 검사가 거짓이면 종료하고 3번 코드를 실행한다.
3. 실제 사용 예제
1) for
for( i = 2; i<=10; i++) {
printf("%d",i);
}
이 프로그램의 출력결과는
i가 2부터 시작하므로 2<=10 를 만족하므로 2를 출력하고 i++를 해서 i가 3이 되고 3<=10이 므로 다시 3을 출력하고.... 이 작업을 계속해서
결국은 2345678910을 화면을 출력하게 된다.
2) while
i=2;
while(i<=10){
printf("%d", i);
i++;
}
for와 다른 점은 시작값과 증감을 나타내는 값이 없으므로 별도로 i=2와 i++를 추가한 것을 볼 수 있다.
출력결과는 동일하다.