모두CBT

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을 더하지 않는다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.