[C++] 반복문

chxxrin·2024년 7월 24일
0

C++

목록 보기
7/22

for문 기본예제

: 0부터 9까지 출력

    for (int i = 0; i < 10; i++)
    {
        cout << i << " ";
    }
    cout << endl;
    
    // 출력 : 0 1 2 3 4 5 6 7 8 9

배열의 모든 요소를 출력

    int my_array[] = {1, 2, 3, 4, 5, 4, 3, 2, 1};
    for (int i = 0; i < sizeof(my_array) / sizeof(int); i++)
    {
        cout << my_array[i] << " ";
    }
    cout << endl;
  • my_array가 9개의 요소를 가진다면 sizeof(my_array)는 9*4 = 36 byte
  • sizeof(int)는 4이므로
  • 배열의 크기를 알기 위해서는 sizeof(my_array) / sizeof(int) 로 계산해야한다!

배열의 값(정수)이 차례대로 출력하다가 감소하기 시작하면 멈추도록

    for (int i = 0 ; i < sizeof(my_array) / sizeof(int); i++){
        if (i > 0 && my_array[i] < my_array[i-1]){
            break;
        }
        cout << my_array[i] << " ";
    }
    cout << endl;

문자열 null문자('\0')를 만날 때까지 한 글자씩 출력

방법 1 : if 조건문을 중간에 걸기

    char my_string[] = "Hello, World!"; // 배열 크기를 알아서 결정

    // cout << my_string << endl; 사용 X
    // 힌트: sizeof(), '\0', break,

    // 방법 1 
    for (int i = 0; i < sizeof(my_string); i++)
    {
        if(my_string[i] == '\0')
            break;

        cout << my_string[i];
    }
    cout << endl;
  • for 반복문 범위는 0부터 배열의 길이만큼
  • if 문에 my_string[i]이 '\0' null 문자를 만나면 break 해라!
  • 나머지는 my_string[i] 출력

방법 2 : for문 자체에서 범위를 제한하기

    for (int i = 0; my_string[i] != '\0'; i++)
    {
        cout << my_string[i];
    }
    cout << endl;
  • for 반복문 범위를 0부터 my_string[i]이 '\0' null 문자를 만날 때까지로 정함
  • 그리고 나머지 코드는 그대로 my_string[i] 출력

while 문 (기본)

    int i = 0;
    while (i < 10)
    {
        cout << i << " ";
        i++; // 무한반복 주의 안내
    }
    cout << endl;
  • 여기서 i++ 이 없으면 무한루프가 됨

while 문으로 정수 0~9까지 하나씩 출력하기

    int i = 0;
    while (true) // for(;true;) 와 같음
    {
        
        cout << i << " ";
        i++;

        if(i >= 10)
        {
            break;
        }
    }
    cout << endl;

while 문으로 문자열 하나씩 출력하기

방법1 : && 로지컬 사용

    i = 0;
    while (i < sizeof(my_array) && my_string[i] != '\0')
    {
        cout << my_string[i];

        i++;
    }
    cout << endl;

방법2 : 간단한 방법

: 그냥 널문자만나기 전까지로 하면 처음부터 맨 끝까지 출력하게 됨!

    i = 0;
    while (my_string[i] != '\0')
    {
        cout << my_string[i];

        i++;
    }
    cout << endl;
  • i < sizeof(my_array): 이 조건은 i가 문자열 배열 my_array의 전체크기보다 작은 동안 루프를 계속 실행합니다. 그러나 이 조건은 문자열을 순회하는 데 적절하지 않습니다. 그래서 이거는 없어도 됨! && 로지컬을 쓰기 위해서 가져와봤음
  • my_string[i] != '\0': 이 조건은 my_string[i]가 널 문자('\0')가 아닌 동안 루프를 계속 실행합니다. 이는 문자열의 끝을 확인하는 적절한 방법입니다.

출처 : 홍정모 유튜브

0개의 댓글

관련 채용 정보