5/7 흐름제어(Control Flow), Array/String

JK·2023년 5월 7일

흐름제어(Control Flow)

흐름제어란 코드의 실행 순서를 제어하는 것을 말합니다. C 언어에서는 다음과 같은 흐름제어문이 제공됩니다.

1. break

break문은 switch문과 반복문(for문, while문, do-while문)에서 사용됩니다.
해당 반복문이나 switch문을 즉시 종료하고, 그 다음 코드를 실행합니다.
보통 if문과 함께 사용하여 특정 조건이 충족되었을 때 반복문을 종료합니다.

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // i가 5일 때 반복문을 빠져나옴
    }
}

2. continue

continue문은 반복문(for문, while문, do-while문)에서 사용됩니다.
현재 반복을 즉시 종료하고, 다음 반복을 진행합니다.
보통 if문과 함께 사용하여 특정 조건이 충족되었을 때 현재 반복을 종료하고 다음 반복을 진행합니다.

for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue; // i가 짝수일 때 다음 반복으로 넘어감
    }
    printf("%d ", i); // 홀수만 출력됨
}

3. goto

goto문은 프로그램의 실행 흐름을 레이블(label)로 이동시킵니다.
보통 if문이나 switch문보다 더 복잡한 조건에서 사용됩니다.
하지만 코드의 가독성을 해치기 때문에, 대부분의 경우 다른 분기문으로 대체할 수 있습니다.

for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        if (i * j == 25) {
            goto end; // i*j가 25인 경우, end로 이동
        }
    }
}
end:
printf("i*j가 25인 경우: i=%d, j=%d\n", i, j);

Array/String

array

Array는 같은 자료형을 가진 변수들의 집합입니다. 배열은 일반 변수와는 달리, 인덱스를 사용하여 배열의 각 요소에 접근할 수 있습니다.

배열은 다음과 같은 방식으로 선언합니다.

자료형 배열이름[배열크기];

배열의 요소에 접근하려면, 배열 이름 뒤에 대괄호([]) 안에 인덱스를 적어주면 됩니다. 인덱스는 0부터 시작합니다.

int arr[5];  // 크기가 5인 int형 배열 arr 선언
arr[0] = 1;  // arr의 첫 번째 요소에 1 저장
arr[1] = 2;  // arr의 두 번째 요소에 2 저장
arr[2] = 3;  // arr의 세 번째 요소에 3 저장
arr[3] = 4;  // arr의 네 번째 요소에 4 저장
arr[4] = 5;  // arr의 다섯 번째 요소에 5 저장

printf("%d", arr[2]);  // arr의 세 번째 요소인 3 출력

String

String은 문자들의 배열입니다. C 언어에서 문자열은 '\0'(NULL) 문자로 끝나는 문자의 집합입니다. 따라서 문자열의 크기는 문자의 개수보다 1 큽니다.

문자열은 다음과 같은 방식으로 선언합니다.

char 문자열이름[크기];

문자열을 초기화할 때는 큰따옴표("")로 감싸서 문자열을 적어줍니다. 이 때, NULL 문자는 자동으로 추가됩니다.

char str[6] = "Hello";
printf("%s", str);  // "Hello" 출력

문자열의 각 문자에 접근하려면, 배열 이름 뒤에 대괄호([]) 안에 인덱스를 적어주면 됩니다.

char str[6] = "Hello";
printf("%c", str[1]);  // 'e' 출력

문자의 배열을 선언하는 방법은 여러 가지가 있지만 몇 가지만 적어보겠습니다

char c[6] = {'h', 'e', 'l', 'l', 'o', '\0'};

char c[6] = "hello";

char c[] = "hello";

printf("%s", c);

아래로 갈수록 편한 방법들이지만 문자의 배열을 만들때 마지막 자리가 \0(NULL)으로 끝난다는 것을 잊으면 안 됩니다!

흐름제어와 Array/String은 C 언어에서 매우 중요한 개념입니다. 흐름제어를 이용하면 프로그램의 흐름을 제어하여 원하는 대로 동작하도록 할 수 있고, 배열과 문자열을 이용하면 여러 개의 값을 한번에 처리할 수 있습니다. 이러한 개념들은 C 언어를 이용하여 프로그램을 작성할 때 반드시 알고 있어야 하는 것들입니다.

흐름제어를 공부할 때는 if문, switch문, while문, for문 등을 배우게 됩니다. 이들은 프로그램의 실행 흐름을 제어하기 위해 필요한 구문들입니다. 각 구문의 특징과 사용 방법을 이해하면, 프로그램을 더욱 효율적으로 작성할 수 있습니다.

Array와 String은 C 언어에서 데이터를 저장하고 처리하는 데 매우 중요한 역할을 합니다. 이들을 이용하면, 변수 하나로 여러 개의 값을 처리할 수 있습니다. 또한, 문자열을 이용하면 텍스트 데이터를 저장하고 처리하는 데 용이합니다.

흐름제어와 Array/String을 공부하면서, 이들이 C 언어에서 어떤 역할을 하는지에 대해 깊이 이해할 수 있었습니다. 이들의 기본 개념을 이해하고, 예제를 통해 실습해보며 학습하는 것이 좋다고 생각합니다.

profile
^^

0개의 댓글