25-2아래 Java 프로그램의 출력 결과를 적으시오.public cl… | 2025년 정보처리기사실기 2회차 기출문제 상세 페이지
1
25-2
아래 Java 프로그램의 출력 결과를 적으시오.
public class Main {
interface Op {
int calc(int v);
}
static int safe(Op op, int arg) {
try {
return op.calc(arg) + 1;
} catch (RuntimeException e) {
return -1;
}
}
public static void main(String[] args) {
Op half = v -> {
if (v % 2 != 0) {
throw new IllegalArgumentException();
}
return v / 2;
};
System.out.print(safe(half, 8) + safe(half, 5) + safe(w -> w * 3, 4));
}
}해설
17
[해설]
람다식은 함수형 인터페이스 Op의 calc 구현으로 전달되고, safe는 RuntimeException이 나면 -1을 돌려준다.
- safe(half, 8)은 8이 짝수라 8/2 = 4에 1을 더해 5다.
- safe(half, 5)는 5가 홀수라 IllegalArgumentException이 던져지고, RuntimeException의 하위 타입이라 catch에 잡혀 -1이다.
- safe(w -> w * 3, 4)는 4×3 = 12에 1을 더해 13이다.
세 값이 모두 int라 문자열 연결이 아니라 덧셈이 되어 5 + (−1) + 13 = 17이다. 예외가 나면 return 식의 +1은 실행되지 않으므로 -1에 1을 더하지 않는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.