C++ 같이 배워요

[C++] Day 4 - 조건문 및 반복문

kkigon 2025. 7. 9. 17:35

조건문

 

기본적인 틀은 이렇다. 파이썬과의 차이점이라고 하면 elif가 없어서 직접 else if라고 해야한다는 것. 그리고 콜론이 없다는 것.

괄호 안에는 불리언 타입이 올 수 있다.

 

int a = 3;
if (a == 3) {
    cout << "3입니다.";
}
else if (a == 4) {
    cout << "4입니다.";
}
else {
    cout << "다른거입니다.";
}

 

switch문 (25.08.04)

if 문을 연달아 쓰는 것도 좋지만, C++에서는 다음과 같은 switch 문법을 지원한다.

for (int x = 0; x < N; x++) {
    for (int y = 0; y < M; y++) {
        switch (g[x][y]) {
            case 'D':
                unite(M * x + y, M * (x + 1) + y);
                break;
            case 'U':
                unite(M * x + y, M * (x - 1) + y);
                break;
            case 'L':
                unite(M * x + y, M * x + y - 1);
                break;
            case 'R':
                unite(M * x + y, M * x + y + 1);
                break;
        }
    }
}

 

 

반복문

1. for 문

일단, 파이썬에서 가장 많이 썼던 for i in range(N) 구문은 다음과 같다.

for (int i = 0; i < N; i++) {
    cout << "Hello\n";
}

 

보아하니 저 반복문 자체를 define해서 약어처럼 쓰시는 분들도 계시더라.

 

혹시 파이썬에서 이터레이터를 for문을 통해서 순회했던 것 처럼 C++에서도 배열이나 문자열 등을 바로 순회할 수 있을까?

답은 가능하다. 다음과 같이 하면 된다.

 

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int arr[5] = {1, 2, 3, 4, 5};
    for (int x : arr) { //실제 값에 변화 없음
        cout << x << ' ';
    }
    cout << '\n';

    for (int &x : arr) { //실제 값에 변화 있음
        x *= 2; //실제로 값이 2만큼 곱해짐
    }
    
    for (int x : arr) {
        cout << x << ' ';
    }
}

// 출력값:
// 1 2 3 4 5
// 2 4 6 8 10

 

문자열이나 벡터도 순회할 수 있다. 아래 블로그를 참고하자.

https://jimmy-ai.tistory.com/219

 

C++ 스타일의 for문(범위 기반 for문) : 배열, 문자열, 벡터 순회 예제

C++ 범위 기반 for문 사용법 이번 글에서는 C++에서 제공하는 스타일의 for문인 범위 기반 for문의 사용 방법을 array, string 및 vector에서의 사용 예제를 통해서 살펴보겠습니다. 배열 순회 예시, 값 변

jimmy-ai.tistory.com

 

2. while 문

while 문은 아래 예제를 보자.

int i = 0;
while (i < 5) {          // 0,1,2,3,4 출력
    cout << i << ' ';
    ++i;
}

 

간단하다. 참고로 C++의 반복문에도 똑같이 break와 continue문이 있는데, 차이점이라면 맨 끝에 세미콜론을 붙여줘야 한다.