Coding & Programming/C언어 기초(A-Z)

[C언어 기초코딩: 예제로 간단 정리] 5. 반복문(Loops) - 예제 추가

mainCodes 2021. 3. 10. 21:52

JollyTree의 C언어 기초코딩: 예제로 간단 정리 - 5. 반복문(Loops) - 예제 추가

안녕하세요 JollyTree(•̀ᴗ•́)و입니다. 
지난 번 C언어 반복문 관련 자료를 포스팅한 후 반복문에 대한 예제가 부족한 것 같아 for, while 문 위주로 예제 코드를 정리하였습니다. 먼저 for, while 문으로 아래 예제는 중첩 for문, while문, for문과 do while문을 사용한 구구단 예제, 그리고 for문을 사용한 역순의 구구단 예제입니다.

 

for, while 문 예제(Example):

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
47
48
#include <stdio.h>
int main(void)
{
    int i = 0, j = 0;
 
    printf("\n>> 중첩 for문을 사용한 구구단 예제\n");
    printf("------------------------------------------\n");
    // 구구단 2단에서 9단까지 계산하여 출력
    for(i = 2; i <= 9; i++//2단 ~ 9단 반복을 위한 for 문
        for (j = 1; j <= 9; j++)  //각 단별로 9까지 곱셈을 위한 for 문
            printf("%d x %d = %d\n", i, j, i * j);
 
    printf("\n>> while문을 사용한 구구단 예제\n");
    printf("------------------------------------------\n");
    i = 2;
    while (i <= 9)
    {
        j = 1;
        while (j <= 9)
        {
            printf("%d x %d = %d\n", i, j, i * j);
            j++;
        }
        i++;
    }
 
    printf("\n>> for문과 do while문을 사용한 구구단 예제\n");
    printf("------------------------------------------\n");
    for (i = 2; i <= 9; i++)
    {
        j = 1;
        do
        {
            printf("%d x %d = %d\n", i, j, i * j);
            j++;
        } while (j <= 9);
    }
 
    
    printf("\n>> 역순 구구단 예제\n");
    printf("------------------------------------------\n");
    for (i = 9; i >= 2; i--
        for (j = 9; j >= 1; j--)  
            printf("%d x %d = %d\n", i, j, i * j);
    printf("\n");
 
    return 0;
}
cs

다음 예제는 loopFunc() 함수 내에 반복문 예제입니다. 초기화와 조건식없이 증감식만 적용한 for문, 초기화와 조건식 그리고 증감식 자체가 없는 for문, 변수의 멀티 초기화를 적용한 for문, 조건식에 함수를 적용한 while문 그리고 마지막으로 항상 조건식이 참(True)인 while문을 예제를 정리하였습니다. 그리고 반복문을 중간에 중단하기 위한 break과 이하 코드의 실행을 스킵하는 continue문도 예제에 포함하였습니다.

 

for, while 문 예제(Example):

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma warning(disable : 4996)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <fcntl.h> 
#include <io.h> 
 
#define BUF_SIZE         256
#define READ_MODE       _O_RDONLY | _O_TEXT
#define FILE_NAME       "maincodes.txt"
 
int loopFunc()
{
    char* ptr = NULL;
    char string[128= "0123;456;;78;;90;66;";
    int i;
 
    printf("\n>> 초기화, 조건식없이 증감식만 적용한 for문\n");
    printf("------------------------------------------\n");
    i = 0;
    for (;;i++)
    {
        printf("i = %d\n", i);
        if (i > 5)
            break;
    }
 
    printf("\n>> 초기화, 조건식, 증감식이 없는 for문\n");
    printf("------------------------------------------\n");
    for(;;)
    {
        if (i > 10)
            break;
        else
            printf("i = %d\n", i);
        i++;
    }
 
    printf("\n>> 멀티 초기화와 포인터를 이용한 for문\n");
    printf("------------------------------------------\n");
    for (i = 0, ptr = strtok(string";"); i < 7; i++, ptr = strtok(NULL";"))
    {
        if (i == 0 && ptr)
            continue;
 
        if (i == 1 && ptr) printf("\n%d\n", i);
        else if (i == 2 && ptr) printf("\n%d\n", i);
        else if (i == 3 && ptr) printf("\n%d\n", i);
        else if (i == 4 && ptr) printf("\n%d\n", i);
        else if (i == 5 && ptr) printf("\n%d\n", i);
    }
 
    char read_buf[BUF_SIZE] = "";
    int fd, len;
 
    if ((fd = open(FILE_NAME, READ_MODE)) == -1)
    {
        printf("file open error '%s'", FILE_NAME);
        return 1;
    }
    
 
    printf("\n>> 조건식에 함수를 적용한 while문\n");
    while (len = read(fd, read_buf, sizeof(read_buf)) > 0)
        printf("maincodes.txt로부터 읽은 내용 = [\n%s]\n", read_buf);
 
    close(fd);
 
    printf("\n>> 조건식의 결과가 항상 참인 while문\n");
    printf("------------------------------------------\n");
    i = 0;
    while (true)
    {
        if (i < 5)
            printf("i = %d\n", i);
        else if (i == 5)
        {
            i++;
            continue;
        }
        i++;
        if (i == 10)
        {
            printf("i = %d\n", i);
            break;
        }
    }
 
    return 0;
}
 
int main()
{
    loopFunc();
}
cs

오늘은 반복문(Loops)에 대한 추가 예제였으며 이상 JollyTree였습니다 (•̀ᴗ•́)و