← 회차 전체 문제정처LAB 자체 제작내용 검수 완료정처LAB 정보처리기사 필기 자체 제작 3회 · 프로그래밍 언어 활용 · Java 예외 · 74번
다음 Java 프로그램이 출력하는 값은?
static int f() {
int x = 1;
try {
return ++x;
} finally {
x += 3;
}
}
System.out.print(f());
- 1
1
오답 이유전위 증가식 `++x`는 x를 2로 만든 뒤 2를 반환 후보값으로 계산하므로 1은 아니다. - 2
2
정답 근거try의 return 식에서 계산된 값 2가 보존되고 finally에 별도 return이 없으므로 2가 정답이다. - 3
5
오답 이유finally에서 x는 5가 되지만 이미 계산된 기본형 반환값 2를 다시 계산하지 않으므로 5를 반환하지 않는다. - 4
컴파일 오류
오답 이유finally에서 지역 변수를 변경하는 코드는 유효하며 모든 실행 경로가 정수 값을 반환하므로 컴파일 오류가 아니다.
정답·상세해설정답 2번
return 식 `++x`가 먼저 평가되어 반환값 2가 저장된다. finally에서 지역 변수 x를 3 증가시켜도 finally 자체에 return이 없으므로 이미 계산한 반환값 2는 바뀌지 않는다.
콘텐츠 기록콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 최종 검수
- 2026-08-16