[C언어] for루프의 실행 순서 (정보처리기사 25년 1회 실기)


10. 다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.

#include <stdio.h>
char Data[5] = {'B', 'A', 'D', 'E'};
char c;
 
int main(){
    int i, temp, temp2;
 
    c = 'C';
    printf("%d\n", Data[3]-Data[1]);
 
    for(i=0;i<5;++i){
        if(Data[i]>c)
            break;
    }
 
    temp = Data[i];
    Data[i] = c;
    i++;
 
    for(;i<5;++i){
        temp2 = Data[i];
        Data[i] = temp;
        temp = temp2;
    }
 
    for(i=0;i<5;i++){
        printf("%c", Data[i]);
    }
}
4
BACDE

1. ASCII 숫자로 변환할 때

2. for 루프의 실행 순서

char Data[5] = {'B', 'A', 'D', 'E'};  // 인덱스 0~3만 값 있음
char c = 'C';

for(i=0;i<5;++i){
    if(Data[i]>c)
        break;
}

break한 시점에서의 i 값은 뭐야?

++i는 다음 루프 시작 시에만 영향을 주므로, break 시점의 i는 여전히 2인 것이다.

++i든 i++든 증가 자체는 루프의 끝에서 일어나기 때문에 결과는 똑같다.




Revision #5
Created 13 June 2025 02:21:25 by Dain
Updated 6 July 2025 15:51:32 by Dain