17. 다음 자바코드에서 알맞는 출력값을 작성하시오.
public class Conv{
public Conv(int a) {
this.a = a;
}
int func() {
int b =1;
for (int i=1; i<a; i++){
b = a * i + b
}
return a +b;
}
int a;
}
public static void main(String[] args){
Conv obj = new Conv(3);
obj.a=5;
int b = obj.func();
system.out.print(obj.a + b);
}
1. 객체 생성 및 초기화
- Conv obj = new Conv(3);로 Conv 객체가 생성되고, 생성자에서 a는 3으로 초기화됩니다.
- obj.a = 5;를 통해 a의 값을 5로 변경합니다.
2. func 메서드 호출
- int b = obj.func();를 호출합니다.
3. func 메서드 내의 로직
- int b = 1;로 초기화합니다.
- for (int i = 1; i < a; i++) 루프가 실행됩니다. 현재 a의 값은 5이므로, 루프는 1부터 4까지 실행됩니다.
반복 계산
- i = 1:
- b = 5 * 1 + 1 → b = 5 + 1 = 6
- i = 2:
- b = 5 * 2 + 6 → b = 10 + 6 = 16
- i = 3:
- b = 5 * 3 + 16 → b = 15 + 16 = 31
- i = 4:
- b = 5 * 4 + 31 → b = 20 + 31 = 51
4. func 메서드 반환값
- 루프가 종료된 후, return a + b;에서:
- return 5 + 51; → 56이 반환됩니다.
5. 최종 출력
- System.out.print(obj.a + b);에서 obj.a는 5, b는 56입니다:
- System.out.print(5 + 56); → 61이 출력됩니다.