📚for문

1번 초기식은 for문이 시작되는 처음 한 번만 수행된다. 다음으로 2번 조건식은 반복 수행의 종료 시점을 조사하는 부분으로 반복 수행 여부를 점검한다. 조건식이 참이면 루프 안의 명령문을 수행하고 증감식을 수행한다. 만약 조건식이 거짓이면 루프를 빠져나간다.

1
2
3
4
5
6
    //1     //2     //4
for(초기식; 조건식; 증감식)
{
  //3
  // 반복할 문장들;
}


for문 사용 예

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

void main()
{
  int i, sum = 0;

  for(i = 1; i <= 10; ++i)
  {
    sum += i;
    printf("%d번째 실행 : sum : = %d \n", i, sum);
  }

  printf("1부터 %d까지의 합 = %d \n", i - 1, sum);
}


다양한 for문 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 초기식이나 증감식이 여러 개 존재하는 경우
for(int i = 1, int j = 1; i <= 100; ++i, j = j + 2)
{
  // 반복할 문장들;
}


// 초기식이 생략된 경우: 루프 변수를 반복문 앞에 초기화
int i = 0;

for( ; i <= 10; ++i)
{
  // 반복할 문장들;
}


// 조건식이 생략된 경우: 반복문 안에 if문 사용하여 조건식을 대행
for(int i = 0; ; ++i)
{
  if(i <= 10)
  {
    // 반복할 문장들;
  }
  else
  {
    break;
  }
}


// 증감식이 생략된 경우: 반복문 안에 증감식 수행
int sum = 0;

for(int i = 0; i <= 10; )
{
  sum += i;

  ++i;
}


// 초기식, 조건식, 증감식 모두 생략된 경우: 무한 루프
for( ; ;)
{
  // 반복할 문장들;
}



📚while문

while문을 만나면 조건식이 검사되고 조건이 참이면 while 안의 명령문이 실행된다. 그 다음 다시 while 조건식으로 돌아가 조건식이 검사되고 참이면 다시 반복문 안의 명령문이 실행된다. 만약 조건식이 거짓이면 반복문을 빠져나오게 된다.

1
2
3
4
while(조건식)
{
  // 반복할 문장들;
}


while문 사용 예

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>

void main()
{
  int i = 1, sum = 0;

  while(i <= 10)
  {
    sum += i;

    printf("%d번째 실행 : sum = %d \n", i, sum);

    ++i;
  }

  printf("1부터 %d까지의 합 = %d \n", i - 1, sum);
}


📄while문의 무한 루프 구성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

void main()
{
  while(1)
  {
    // 반복할 문장;
  }

  while(true)
  {
    // 반복할 문장;
  }
}


📄while문 사용 시 유의 사항

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

void main()
{
  float x = 0.0;
  float sum = 0.0;

  // x가 9.9가 되는 순간 무한 루프에 빠짐. 실수 표현에 있어 0.0에 0.1을 99번 더하면 정확히 9.9가 되지 않기 때문. while(x < 9.9)로 수정.
  while(x != 9.9)
  {
    sum += x;
    x += 0.1;
  }

  printf("sum = %f \n", sum);
}



📚do~while문

for문이나 while문은 조건식을 먼저 검사하고 그 결과에 따라 반복문을 실행하지만 do~while문은 반복문을 먼저 실행하고 조건을 검사하여 반복 실행 여부를 결정한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#pragma warning(disable:4996)

void main()
{
  int i = 0, n;
  int sum = 0;

  printf("n=? ");
  scanf("%d", &n);

  do
  {
    sum += i;
    ++i;
  }
  while(i <= n);

  printf("i = %d \n", i);
  printf("i ~ %d까지 합 = %d \n", n, sum);
}



📚기타 제어문

📄break문

break문은 반복 명령 실행 도중에 반복문을 강제적으로 빠져나오는데 사용된다. 자신이 포함된 하나의 루프나 블록만 벗어나게 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#pragma warning(disable:4996)

void main()
{
  int num, sum = 0;

  while(1)
  {
    printf("number(Enter the '0' to Quit): ");
    scanf("%d", &num);

    if(num == 0)
    {
      break;
    }

    sum += num;
  }

  printf("sum = %d", sum);
}


📄continue문

continue문은 루프를 다시 실행하고자 할 때 사용한다. switch~case문에서는 사용되지 않고 반복 구조에서만 사용된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)

void main()
{
  int num = 1;

  while(num != 0)
  {
    printf("number(Enter the '0' to Quit): ");
    scanf("%d", &num);

    if(num <0)
    {
      printf("num : Negative number! \n\n");
      continue;
    }

    printf("Sqaureroot of %d = %f \n\n", num, sqrt(num));
  }
  printf("END \n");
}



Leave a comment