25년 2회 8~11 3:14
3:14
run(f) + run((int(n) -> n + 9);
run(f)와 int(n) 두개 모두 apply함수를 탄다고 말씀해주셨는데
하나는 if문에 접근하고 다른 하나는 왜 if문에 접근을 안하는지 궁금합니다
回答 2
0
코드 다시 보면
System.out.print(run(f) + run((int n) -> n + 9));이건 사실 이렇게 풀어서 생각하면 이해가 쉽습니다:
int a = run(f);
int b = run((int n) -> n + 9);
System.out.print(a + b);run()이 2번 호출됨
그 안에서 각각 apply()가 실행됨
각각 어떻게 실행되냐
1⃣run(f)
return f.apply(3);여기서 실행되는 apply는:
(x) -> {
if (x > 2) {
throw new Exception();
}
return x * 2;
}3 > 2 → 예외 발생catch에서 7 반환
2⃣run((int n) -> n + 9)
여기 apply는:
(int n) -> n + 9apply(3) → 12
✅ "run()이 두 번 호출되기 때문에 apply도 두 번 실행된다"
✔ 람다는 "함수 정의"일 뿐
F f = (x) -> {...}👉 이건 실행이 아니라 정의만 한 것
✔ 실제 실행은 여기서 일어남
f.apply(3);👉 이게 실행 트리거
요소역할F f = ...함수 정의run(f)함수 실행 요청f.apply(3)실제 실행run(...) + run(...)두 번 실행
run()이 두 번 호출되기 때문에 apply()도 두 번 실행되는 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. cpoooo107님.
질문하신 내용은 자바의 람다 표현식과 함수형 인터페이스에 대한 이해가 필요합니다. run(f)와 run(int(n) -> n + 9)는 모두 함수형 인터페이스를 기반으로 하는 자바 코드로 보입니다. 이 두 코드는 각각 다른 방식으로 함수가 호출되거나, 실행 중에 조건문에 접근하는 방법에 차이가 있을 수 있습니다.
특히, 자바에서는 함수형 인터페이스의 apply 메서드가 구현되어 있는지 혹은 직접 호출되고 있는지에 따라 if문 접근 여부가 달라질 수 있습니다. 한쪽이 if문을 탄다면 이는 조건의 참/거짓을 평가해야 할 상황이 발생하는 것으로, if문을 타지 않는 것은 해당 조건문에 접근하지 않아도 되는 로직일 가능성이 있습니다.
이를 구체화하기 위해 구체적인 코드나 상황 설명이 필요할 수 있습니다. 관련된 코드나 예제를 제공해 주시면 보다 명확한 답변을 드릴 수 있을 것 같습니다.
유사한 개념을 다룬 기존 게시물을 참고하시면 이해에 도움이 될 수 있습니다. 다음 링크를 통해 관련 내용에 접근하실 수 있습니다.
- 25년 2회 8~11 코드 동작 설명에 대한 답변: 자바에서의 오버라이딩이나 메서드 호출의 구체적인 동작 방식을 파악할 수 있는 답변입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
2
1
python main.py 실행시 게임이 실행이 안돼요
0
9
2
antigravity 대신 cursor를 활용해도 되나요?
0
10
1
뉴스 검색 분류 한도초과
0
14
2
완성자료
0
8
2
scanf("%d\n") 의미
0
6
1
섹션5 노션링크 는 따로 없나요?
0
16
2
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
15
2
Part 4에서 강의 연관 노션 정보들이 워드파일에 없습니다.
0
19
2
첨부자료 Part 4 코드 확인 부탁드리겠습니다.
0
16
2
질문 드립니다.
0
37
2
질문있습니다
0
22
1
1번 문제 질문입니다.
0
26
1
25년 3회 1번 문제
0
34
2
자료 다운로드 건 문의 입니다.
0
43
2
수업 자료 질문 건
0
49
2
수업노션자료파일 자료 다운로드 건.
0
78
3
[코딩 학습방법문의]
0
47
2
25년 2회 17번
0
72
2
기출문제 파일이나 노션은 제공안되나요?
0
125
1
2023년 2회 8번 답
0
95
1
2025년 2회 18번
0
93
2
25년 2회 12~16 라운드로빈
0
102
1
25년 2회 8~11
0
81
1

