본문 바로가기
언어/C++

2일차)C++ 문법 단기간에 끝내기!! _기초 문법편2

by CodeMuscle 2024. 11. 19.
반응형

안녕하세요. CodeMuscle 입니다.



 

오늘은 조건문과 반복문을 배워보겠읍니다.

C++에서 제어문은 프로그램의 흐름을 제어하는 역할을 합니다. 제어문을 통해 조건에 따라 특정 코드를 실행하거나, 반복문을 통해 반복 작업을 수행할 수 있습니다. 이번 글에서는 C++의 제어문 중 조건문과 반복문을 상세하게 설명하고, 관련된 예시와 코드도 함께 알아봅시당.

조건문

조건문은 프로그램이 특정 조건을 만족할 때에만 코드를 실행하도록 합니다. 이로써 다양한 상황에 맞는 처리가 가능합니다.

 

1. if, else if, else 문

if 문은 주어진 조건이 참일 때 코드를 실행합니다. else if 문은 이전 조건이 거짓일 때 새로운 조건을 검사하며, else 문은 앞선 모든 조건이 거짓일 때 실행되는 코드 블록을 정의합니다.

예시:

int num = 10;
if (num > 0) {
    std::cout << "Positive number" << std::endl;
} else if (num < 0) {
    std::cout << "Negative number" << std::endl;
} else {
    std::cout << "Zero" << std::endl;
}
  • num이 0보다 크면 "Positive number"가 출력됩니다.
  • num이 0보다 작으면 "Negative number"가 출력됩니다.
  • num이 0일 경우 "Zero"가 출력됩니다.

추가 예시:

int age = 20;
if (age >= 18) {
    std::cout << "Adult" << std::endl;
} else {
    std::cout << "Minor" << std::endl;
}
  • age가 18 이상이면 "Adult"가 출력되고, 그렇지 않으면 "Minor"가 출력됩니다.

2. switch 문

switch 문은 여러 가지 경우 중 하나를 선택하여 실행하고자 할 때 사용합니다. 각 경우는 case 키워드를 사용해 정의하며, break를 통해 해당 블록이 끝나면 빠져나가게 합니다. default는 모든 case가 일치하지 않을 때 실행됩니다.

예시:

char grade = 'B';
switch (grade) {
    case 'A':
        std::cout << "Excellent" << std::endl;
        break;
    case 'B':
        std::cout << "Good" << std::endl;
        break;
    case 'C':
        std::cout << "Fair" << std::endl;
        break;
    default:
        std::cout << "Needs Improvement" << std::endl;
}
  • grade가 'B'일 경우 "Good"이 출력됩니다.
  • break가 없으면 다음 case로 계속 진행되므로, 각 case 끝에 break를 사용하는 것이 중요합니다.

추가 예시:

int day = 3;
switch (day) {
    case 1:
        std::cout << "Monday" << std::endl;
        break;
    case 2:
        std::cout << "Tuesday" << std::endl;
        break;
    case 3:
        std::cout << "Wednesday" << std::endl;
        break;
    default:
        std::cout << "Another day" << std::endl;
}
  • day가 3일 경우 "Wednesday"가 출력됩니다.

반복문

반복문은 특정 코드 블록을 여러 번 실행할 때 사용됩니다. 반복문에는 for, while, do-while 등이 있습니다.

1. for 반복문

for 반복문은 반복 횟수가 명확할 때 사용합니다. 초기값, 조건, 증감식을 통해 반복을 제어합니다.

예시:

for (int i = 0; i < 5; i++) {
    std::cout << "Iteration " << i << std::endl;
}
  • i는 0부터 시작해 5보다 작을 때까지 1씩 증가하며, 총 5번 반복됩니다.
  • 출력 결과는 "Iteration 0"부터 "Iteration 4"까지입니다.

추가 예시:

for (int i = 10; i > 0; i--) {
    std::cout << "Countdown: " << i << std::endl;
}
  • i는 10부터 시작해 0보다 클 때까지 1씩 감소하며, 카운트다운을 출력합니다.

2. while 반복문

while 반복문은 조건이 참인 동안 계속해서 실행됩니다. 반복 횟수가 명확하지 않거나 조건에 따라 반복이 종료될 때 유용합니다.

예시:

int count = 0;
while (count < 5) {
    std::cout << "Count: " << count << std::endl;
    count++;
}
  • count가 5보다 작을 동안 반복이 실행되며, count가 5에 도달하면 반복이 종료됩니다.

추가 예시:

int number = 1;
while (number <= 10) {
    if (number % 2 == 0) {
        std::cout << "Even number: " << number << std::endl;
    }
    number++;
}
  • 1부터 10까지의 수 중에서 짝수만 출력합니다.

3. do-while 반복문

do-while 반복문은 최소 한 번은 코드 블록을 실행한 후, 조건을 검사하여 반복 여부를 결정합니다.

예시:

int number;
do {
    std::cout << "Enter a positive number: ";
    std::cin >> number;
} while (number <= 0);
  • 사용자가 양수를 입력할 때까지 반복해서 입력을 받습니다. 최소 한 번은 실행되기 때문에 입력이 반드시 요구됩니다.

추가 예시:

char again;
do {
    std::cout << "Do you want to continue? (y/n): ";
    std::cin >> again;
} while (again == 'y' || again == 'Y');
  • 사용자가 'y' 또는 'Y'를 입력하면 반복이 계속됩니다.

break와 continue

  • break: 반복문을 즉시 종료합니다.
  • continue: 반복문의 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.

예시:

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        continue;  // `i`가 5일 때는 건너뜁니다.
    }
    if (i == 8) {
        break;  // `i`가 8일 때 반복문을 종료합니다.
    }
    std::cout << i << std::endl;
}
  • i가 5일 때 출력하지 않고 건너뛰며, i가 8이 되면 반복문을 종료합니다.

추가 예시:

int i = 0;
while (i < 10) {
    i++;
    if (i % 2 == 0) {
        continue;  // 짝수일 경우 건너뜁니다.
    }
    std::cout << "Odd number: " << i << std::endl;
}
  • i가 짝수일 때는 출력하지 않고, 홀수일 때만 출력합니다.

제어문 응용 버전

제어문은 중첩해서 사용할 수 있으며, 이를 통해 복잡한 조건을 처리할 수 있습니다.

예시:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << "i: " << i << ", j: " << j << std::endl;
    }
}
  • 이중 for 반복문을 사용하여 i j의 모든 조합을 출력합니다.

추가 예시:

int rows = 3;
int cols = 4;
for (int i = 0; i < rows; i++) {
    for (int j = 0; j < cols; j++) {
        std::cout << "* ";
    }
    std::cout << std::endl;
}
  • 3행 4열의 별(*) 모양을 출력합니다.

goto 사용법 (비추천)

goto는 코드의 특정 위치로 점프할 수 있게 해주지만, 프로그램의 흐름을 어렵게 만들어 유지보수가 힘들어집니다. 가독성을 해치기 때문에 사용을 권장하지 않아용~

예시:

int num = 10;
if (num == 10) {
    goto label;
}
std::cout << "This will be skipped" << std::endl;
label:
std::cout << "Jumped to label" << std::endl;
  • goto를 사용하면 label로 이동하여 "This will be skipped" 부분을 건너뜁니다.

추가 예시:

int x = 0;
label:
x++;
std::cout << "x: " << x << std::endl;
if (x < 5) {
    goto label;
}
  • x가 5보다 작을 동안 label로 이동하여 반복적으로 출력합니다.

마무리

이번 글에서는 C++에서 프로그램의 흐름을 제어하는 조건문과 반복문에 대해 알아보았습니다. 이러한 제어문은 프로그램이 다양한 상황에 맞춰 유연하게 동작할 수 있도록 해줍니다. 연습을 통해 각 제어문의 사용법을 익히고, 다양한 문제에 적용해 보세요.

더 많은 예제를 통해 실습해 보면 제어문을 보다 쉽게 이해할 수 있을 것입니다. 꾸준한 연습이 중요하니, 다양한 조건과 반복문을 활용한 코딩 연습을 해보세요!

 

매무리

이 글에서는 C++에서 제어문을 사용하여 프로그램의 흐름을 제어하는 방법에 대해 배워봤읍니다.

 

 

반응형