[C++] 조건문과 반복문

haaana·2023년 11월 13일
0



5. 조건문과 반복문


5.1 조건문 Conditional Statements

📌 if 문

if 문은 조건식의 결과가 true 이면 명령문을 실행한다.
false 이면 아무것도 실행하지 않는다.

C++에서 if 문의 문법은 다음과 같다.

if ( 조건식 ) {
    조건식이 참일 때 실행하는 명령문;
}

다음은 if 문을 사용하여 2개의 숫자를 입력하여 크기를 비교하는 소스 코드이다.

#include <iostream>

using namespace std;
int main() {

	int num1, num2, result;
    
    cout << "첫번째 숫자를 입력하세요: ";
    cin >> num1;
    
    cout << "두번째 숫자를 입력하세요: ";
    cin >> num2;

    cout << "입력한 값: " << num1 << ", " << num2 << endl;

    if (num1 > num2) {
        cout << "첫번째 입력 값이 두번째 입력값보다 큽니다." << endl;
    }
    
    return 0;
}

📌 if-else 문

if 문은 조건식의 결과가 true 이면 명령문을 실행하며,
else 문은 조건식의 결과가 false 이면 명령문을 실행한다.

C++에서 if-else 문의 문법은 다음과 같다.

if ( 조건식 ) {
    조건식이 참일 때 실행하는 명령문;
}
else {
	조건식이 거짓일 때 실행하는 명령문;
}

다음은 if-else 문을 사용하여 2개의 숫자를 입력하여 크기를 비교하는 소스 코드이다.

#include <iostream>

using namespace std;
int main() {

	int num1, num2, result;
    
    cout << "첫번째 숫자를 입력하세요: ";
    cin >> num1;
    
    cout << "두번째 숫자를 입력하세요: ";
    cin >> num2;

    cout << "입력한 값: " << num1 << ", " << num2 << endl;

    if (num1 > num2) {
        cout << "첫번째 입력 값이 두번째 입력값보다 큽니다." << endl;
    }
    else {
        cout << "두번째 입력 값이 첫번째 입력값보다 큽니다." << endl;
    }
    
    return 0;
}

📌 if-else if-else 문

if-else if-else 문은 조건문이 여러 개일 때 사용한다.

if 문은 조건식 1의 결과가 true 이면 명령문을 실행하며,
else if 문은 조건식 2의 결과가 true 이면 명령문을 실행한다.
else 문은 조건식의 결과가 false 이면 명령문을 실행한다.

C++에서 if-else if-else 문의 문법은 다음과 같다.

if ( 조건식 1 ) {
    조건식 1이 참일 때 실행하는 명령문;
}
else if ( 조건식 2) {
	조건식 2가 참일 때 실행하는 명령문;
}
else {
	조건식 1과 조건식 2가 모두 거짓일 때 실행하는 명령문;
}

다음은 if-else if-else 문을 사용하여 3개의 점수를 입력받아 평균 점수를 계산하고, 그에 맞는 학점을 구하는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {

	int score1, score2, score3, sum_score, avg_score;
    char result;
    
    cout << "첫번째 점수를 입력하세요: ";
    cin >> score1;
    cout << "두번째 점수를 입력하세요: ";
    cin >> score2;
    cout << "세번째 점수를 입력하세요: ";
    cin >> score3;

    sum_score = score1 + score2 + score3;
    avg_score = sum_score / 3;

    cout << "내 점수: " << score1 << ", " << score2 << ", " << score3 << endl;
    cout << "평균 점수: " << avg_score << endl;

    if (90 <= avg_score && avg_score <= 100) {
        result = 'A';
    }
    else if (80 <= avg_score && avg_score < 90) {
        result = 'B';
    }
    else if (70 <= avg_score && avg_score < 80) {
        result = 'C';
    }
    else if (60 <= avg_score && avg_score < 70) {
        result = 'D';
    }
    else {
        result = 'F';
    }

    cout << "\n학점은 " << result << " 입니다." << endl;

    return 0;
}

📌 switch 문

switch 문은 switch 안에 들어있는 수식을 계산한 다음, case 의 조건들과 값을 비교한다.

값이 일치하는 case 가 있으면 그 case 에 해당하는 명령문이 실행된다.
그리고 break 문에 도달하면 종료 된다.
break 문이 없다면 그 다음 case 의 명령문들도 실행된다.

값이 일치하는 case 를 찾지 못하면 default 문이 실행된다.

C++에서 switch 문의 문법은 다음과 같다.

switch ( 비교할 대상 ) {
	case 조건 1:
    	조건 1이 참일 때 실행하는 명령문;
        break;
    case 조건 2:
    	조건 2가 참일 때 실행하는 명령문;
        break;
    ...
}

다음은 switch 문을 사용하여 3개의 점수를 입력받아 평균 점수를 계산하고, 그에 맞는 학점을 구하는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {

	int score1, score2, score3, sum_score, avg_score;
    char result;
    
    cout << "첫번째 점수를 입력하세요: ";
    cin >> score1;
    cout << "두번째 점수를 입력하세요: ";
    cin >> score2;
    cout << "세번째 점수를 입력하세요: ";
    cin >> score3;

    sum_score = score1 + score2 + score3;
    avg_score = sum_score / 3;

    cout << "내 점수: " << score1 << ", " << score2 << ", " << score3 << endl;
    cout << "평균 점수: " << avg_score << endl;

    switch (avg_score / 10) {
        case 10:
        case 9:
            result = 'A';
            break;
        case 8:
            result = 'B';
            break;
        case 7:
            result = 'C';
            break;
        case 6:
            result = 'D';
            break;
        default:
            result = 'F';
            break;
    }

    cout << "\n학점은 " << result << " 입니다." << endl;

    return 0;
}

다음은 switch 문을 사용하여 3개의 점수를 입력받아 평균 점수를 계산하고, 그에 맞는 학점을 구하는 코드에서 break 문을 제거한 소스 코드이다.

#include <iostream>

using namespace std;

int main() {

	int score1, score2, score3, sum_score, avg_score;
    char result;
    
    cout << "첫번째 점수를 입력하세요: ";
    cin >> score1;
    cout << "두번째 점수를 입력하세요: ";
    cin >> score2;
    cout << "세번째 점수를 입력하세요: ";
    cin >> score3;

    sum_score = score1 + score2 + score3;
    avg_score = sum_score / 3;

    cout << "내 점수: " << score1 << ", " << score2 << ", " << score3 << endl;
    cout << "평균 점수: " << avg_score << endl;

    switch (avg_score / 10) {
        case 10:
        case 9:
            cout << "\n학점은 A 입니다." << endl;
        case 8:
            cout << "\n학점은 B 입니다." << endl;
        case 7:
            cout << "\n학점은 C 입니다." << endl;
        case 6:
            cout << "\n학점은 D 입니다." << endl;
        default:
            cout << "\n학점은 F 입니다." << endl;
    }

    return 0;
}

break 문이 없기 때문에 그 다음 case 에 해당하는 명령문도 함께 출력되는 것을 볼 수 있다.

5.2 반복문

📌 for 문

for 문은 해당하는 명령문을 반복 수행한다.

초기식에서는 변수를 초기화한다.
→ 초기식은 반복문이 처음 실행될 때만 확인한다.

그 다음 조건식true 이면 명령문을 수행하며, false 이면 반복 실행을 종료한다.
→ 초기에 조건식이 false 인 경우에는 명령문이 실행되지 않는다.

그리고 명령문을 실행한 다음에는 증감식으로 인해 초기식에서 선언한 변수를 증가 or 감소 시킨 다음 반복을 계속한다.

C++에서 for 문의 문법은 다음과 같다.

for ( 초기값; 조건식; 증감식 ) {
    반복 실행하는 명령문;
}

다음은 for 문을 사용하여 2의 배수를 출력하는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {
    int i, multi = 0;

    printf("2의 배수\n");
    for (i = 0; i < 10; i++) {
        multi = i * 2;

        printf("%d ", multi);
        if (i == 9) {
            printf("\n");
        }
    }
    return 0;
}

📌 while 문

while 문은 해당하는 명령문을 반복 수행한다.

다만 조건식true 이면 명령문을 반복 수행하며, false 이면 반복 실행을 종료한다.
→ 초기에 조건식이 false 인 경우에는 명령문이 실행되지 않는다.

C++에서 while 문의 문법은 다음과 같다.

초기값;
while ( 조건식 ) {
    반복 실행하는 명령문;
    증감식;
}

다음은 while 문을 사용하여 2의 배수를 출력하는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {
    int i, multi = 0;

    printf("2의 배수\n");

    i = 0;
    while (i < 10){
        multi = i * 2;

        printf("%d ", multi);
        if (i == 9) {
            printf("\n");
        }
        i++;
    }

    return 0;
}

📌 do-while 문

do-while 문은 항상 적어도 한번 실행된다.

do 문이 한번 실행한 다음 while 문의 조건을 확인하고, 조건이 true 이면 do-while 문을 다시 실행한다.
false 이면 실행하지 않는다.

C++에서 do-while 문의 문법은 다음과 같다.

초기값;
do {
    반복 실행하는 명령문;
    증감식;
} while ( 조건식 );

다음은 do-while 문을 사용하여 2의 배수를 출력하는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {
    int i, multi = 0;

    printf("2의 배수\n");

    i = 0;
    do {
        multi = i * 2;

        printf("%d ", multi);
        if (i == 9) {
            printf("\n");
        }
        i++;
    } while (i < 10);

    return 0;
}

5.3 break & continue

📌 break

break 는 반복 loop에서 빠져나올 때 사용한다.

이전에 설명했던 switch 문에서 break 문을 살펴보자.

switch 문은 값이 일치하는 case 가 있으면 그 case 에 해당하는 명령문이 실행된다.
그리고 break 문에 도달하면 종료 된다.
만약 break 문이 없다면 그 다음 case 의 명령문들도 같이 실행된다.

switch ( 조건 ) {
	case 조건 1:
    	조건 1이 참일 때 실행하는 명령문;
        break;
    case 조건 2:
    	조건 2가 참일 때 실행하는 명령문;
        break;
    ...
}

아래의 코드는 0 ~ 10의 수를 출력할 때 i가 5일 때 for 문을 빠져나오는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {
    int i;
    for (i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        printf("%d ", i);
    }
    printf("\n");
}

📌 continue

continue 는 반복 loop에서 수행하고 있는 반복과정의 나머지를 건너뛴다.
→ 다음 반복 과정을 강제로 수행하기 시작한다.

아래의 코드는 0 ~ 10의 수를 출력할 때 i가 5일 때 출력을 건너뛰는 소스 코드이다.

#include <iostream>

using namespace std;

int main() {
    int i;
    for (i = 0; i < 10; i++) {
        if (i == 5) {
            continue;
        }
        printf("%d ", i);
    }
    printf("\n");
}




profile
평범한 개발자

0개의 댓글