이번에는 순환문인 for문과 while문에 대해 설명하겠습니다.
for문은 알고리즘을 할 때 꼭 써야 할 것인데요. 다른 곳에도 아주 많이 사용됩니다.
일단 for문에 대해 설명하겠습니다.
for문은 하나 이상의 볼록을 지정된 횟수만큼 실행하는 c의 제어문입니다.
for문은 프로그램의 특정 부분을 한 번 이상 반복 실행하므로 가끔 for 순환문이라고도 합니다.
for문은 다음과 같은 구조를 가집니다.
for(초기식; 조건식; 증감식) { 반복 실행할 문장; } |
'초기식', '조건식', '증감식'은 모두 c의 수식이고, '반복 실행할 문장'은 c의 단일문이나 복합문입니다.
프로그램이 샐행되는 동안 for 문을 만나게 되면 다음과 같은 동작을 수행합니다.
1. 초기식이 평가됩니다. 초기식은 대개 특정 값을 변수에 저장하는 할당문입니다. (예: i=0) |
2. 조건식이 평가됩니다. 조건식은 일반적으로 관계 수식입니다. (예: i>10) |
3. 조건식이 0의 값에 해당하는 거짓으로 평가되면 for 문이 종료되고 프로그램의 제어는 반복 실행할 문장의 바로 다음에 있는 문장으로 넘어갑니다. |
4. 조건식이 참으로 평가되면 반복 실행할 문장에 포함되어 있는 c의 문장이 실행됩니다. |
5. 증감식이 사용되고 나면 제어는 다시 두 번째 단계로 돌아갑니다. (예: i=1+1 ) |
for문의 동작 과정을 보여 드리겠습니다. 조건식이 처음에 거짓으로 평가되면 반복 실행할 문장은
한번도 실행되지 않는 다는 것을 기억하시길 바랍니다.
시작 |
↓
초기식 평가 |
조건식 평가 |
종료 |
이거는 꼭 합시다. | 이거는 하지 맙시다. |
for 문에서 널 문장을 사용할 필요가 있다면 세미콜론을 입력합시다. 세미콜론을 다음 줄에 독립적으로 입력하거나 또는 for 문의 마지막에 공백과 함께 입력합시다. 세미콜론을 독립된 줄에 입력하는 것이 더 좋습니다.
for (count = 0; count < 10; arra[ count] = 50) ; //빈칸에 주의합시다. |
for문 내에서 너무 많은 동작을 처리하지 않도록 합시다. 너무 많은 동작을 처리할 경우 프로그램이 복잡하게 되 이해를 못할 수도 있습니다. 쉼표 연산자를 사용하여 for 문 내에서 원하는 동작을 수행 할 수 있지만 원칙적으로 순환문 내에서는 필요한 것만을 수행하는 것이 더 좋습니다. |
while 문
while 순환문이라고도 하는 while 문은 지정된 조건이 참이라면 계속해서 주어진 문장을 실행하는데요.
while 문은 다음과 같은 형식으로 사용됩니다.
while( 조건식) {
실행할 문장;
} |
'조건식'은 c의 수식이고 '실행할 문장'은 c의 단순문이나 복합문입니다. 프로그램에서 while 문이 사용될 때에는
다음과 같은 동작이 수행됩니다.
1. 조건식이 평가됩니다. |
2. 조건식이 거짓(0)으로 평가되면 while 문은 종료되고 제어는 실행할 문장 바로 다음의 문장으로 넘어갑니다. |
3. 조건식이 참으로 평가되면 실행할 문장에 포함되는 c문장이 실행됩니다. |
4. 제어는 다시 첫 번째 단계로 돌아갑니다. |
while문의 동작 과정입니다.
시작 ←←←←←←←←←←
↓ ↑
조건식 평가 →(참일 경우) 문장 실행
↓(거짓일 경우)
완료
순으로 동작이 됩니다.
for문은 for( ; 조건식; )
다음과 같이 사용될 수 있습니다.
while 문은 while( 조건식 )
이런 비슷한 점이 있으니 for문을 사용 할 수 있는 곳에서 while문을 대신 사용할수 있는 것입니다.
while문을 사용할 때에는 초기화 부분에 해당하는 내용을 먼저 독립된 문장으로 포함시켜야 하고 값을
증감시키는 부분을 while문 내에 포함시켜야 합니다.
while 문
'조건식'은 c의 수식입니다. 제가 계속 말씀 드린것입니다. 일반적으로 관계 수식이 사용되구요 조건식이 거짓으로 평가될 때에는 while문이 종료되고 제어는 실행한 문장(들) 바로 다음에 있는 문장으로 전달됩니다. 그렇지 않다면 실행할 문장(들)에 해당되는 c문장이 실행됩니다.
'실행할 문장(들)'은 조건식이 참으로 평가되는 경우에 계속해서 실행되는 c문장입니다.
while문은 c의 순환문!!이므로 주어진 조건이 참으로 평가된다면 계속해서 문장이나 블록을 실행을 합니다. while문이 처음 실행될 때 주어진 조건이 거짓으로 평가되면 포함된 문장은 절대로 실행이 되지 않습니다.
예제를 보여드리겠습니다.
int i = 0; while ( i < 10 ) { printf(" i의 값은 %d 입니다.", i ); i++ }
아주 쉬운 while문의 예제 입니다.
while문도 이해하시고 넘어가길 바랍니다.
|
지금까지 for문과 while문에 강좌였습니다