2024년 3회 6. 아래 코드에서 출력되는 값을 작성하시오
반응형
주어진 C 코드
c
int increment() {
static int x = 0;
x += 2;
return x;
}
int main() {
int x = 1;
int sum = 0;
for (int i = 0; i < 4; i++) {
x++;
sum += increment();
}
printf("%d", sum);
return 0;
}
출력 결과
이 코드는 다음과 같은 순서로 동작합니다:
- increment() 함수는 static int x 변수로 x를 0으로 초기화합니다.
- x는 함수 내에서 유지되며, 각 호출 시 값이 유지됩니다.
- 반복문에서 increment() 함수가 4번 호출되며, x는 각각 2, 4, 6, 8로 증가합니다.
- 따라서 sum은 2 + 4 + 6 + 8 = 20이 됩니다.
- 최종 출력은 20입니다.
자바 코드로 변환
다음은 주어진 C 코드를 자바 코드로 변환한 예제입니다:
java
package gisa;
// 2024년 3회 6. 아래 코드에서 출력되는 값을 작성하시오
public class Counter {
private static int x = 0;
public static int increment() {
x += 2;
return x;
}
public static void main(String[] args) {
int localX = 1;
int sum = 0;
for (int i = 0; i < 4; i++) {
localX++;
sum += increment();
}
System.out.println(sum); // 출력: 20
}
}
설명
- Counter 클래스: x 변수를 static으로 선언하여 클래스 레벨에서 유지되도록 합니다.
- increment 메서드: x 값을 2씩 증가시키고, 그 값을 반환합니다.
- main 메서드:
- localX 변수를 사용하여 x를 지역 변수로 선언합니다.
- 반복문을 통해 increment 메서드를 4번 호출하며 sum을 누적합니다.
- 최종적으로 System.out.println(sum)을 통해 결과를 출력합니다.
반응형
'낙서장[2] > 오답노트' 카테고리의 다른 글
[오답노트] 모의고사1회 (0) | 2025.02.10 |
---|