컴퓨터 프로그래밍/C

C언어 제어문 (while / do while / for)

나노콛 2019. 7. 18. 14:43

while
반복문입니다.

조건이 참인 동안 반복합니다.

#include <stdio.h>
int main()
{
  int a=10;
  int b=0;

  while(a<20)   //조건이 참
  {
    printf("a == %d\n",a); //출력
    a++;   //사용 후 증가
  }

  while(b)  //조건이 거짓
  {
    printf("b\n");  //출력 안함
  }
  return 0;
}

 

조건이 거짓이 될 때까지 반복을 하게 되어있기 때문에
증감 연산자를 쓰지 않으면 무한 루프에 빠지게 됩니다.
while() 안에 0 외의 다른 수를 넣으면 무한 루프가 됩니다.

while 문 안에 또 while 문이 존재할 수 있습니다.


do while
while 문과 다른 점은 실행문을 1번은 실행하는 구조입니다.

#include <stdio.h>
int main()
{
  int a=10;
  int b=0;

  do {
    printf("a == %d\n",a++);
  } while(b);   //; 확인
  
  return 0;
}

a를 1번 출력하고 
while(b)에서 b가 거짓이라 반복문을 빠져나옵니다.
조건이 거짓이지만 무조건 실행문을 실행을 한 후 반복에 대한 조건 검사를 합니다.


for

 

#include <stdio.h>
int main()
{
  int i;

  for(i=0; i<10; i++)
  {
    printf("i == %d\n",i );
  } 
  
  return 0;
}

1. 초깃값 i=0;
2. 조건문 i<10;
3. 조건이 참이면 실행문
4. 증감식 i++;

조건문 i<10;
조건이 참이면 실행문
증감식

조건문
조건이 참이면 실행문
증감식

조건문
조건이 거짓이면
for 문 종료

for(; ; ) 이렇게 모두 생략하는 경우에는 무한 루프가 됩니다.


문제
while을 써서 1에서 100까지 출력

do while을 써서 50에서 80까지 출력

for을 써서 100에서 20까지 출력