작성
·
337
0
안녕하세요 나도코딩님 새해복 많이받으세요!
전달값(Parameter) 강의 듣고있는데
public static void powerByExp(int number, int exponent) { // 전달값을 2개 받는경우
int result = 1;
for (int i = 0; i < exponent; i++) {
result = result * number;
}
System.out.println(number + " 의 " + exponent + " 승은 " + result);
powerByExp(3,3); // 3 * 3 * 3 = 8
여기서 for문의 사용법이 이해가 안가는데
result = result * number;
3의 3승을 한다고했을때
3 * 1, 3 * 3, 9 * 3는 이렇게 3번 계산하는거잖아요?
그러면 이걸 출력한다고하면
System.out.println(number + " 의 " + exponent + " 승은 " + result);
result는 27이 나오는데
마지막 9 * 3 만 result라고 해석하는건가요?
3*1, 3*3 은 왜 result 라고 해석을 안하는건가요?
매소드 너무 어렵습니다.. ㅠㅠ
답변 3
2
안녕하세요?
반복문에 진입하기 전에 result 변수는 먼저 1로 초기화가 되어 있습니다. 그리고 반복문을 돌면서 3을 곱하는 작업을 3번 하면서 각 결과를 result 에 집어넣게 되지요. 그런 다음에 마지막으로 result 값을 출력하게 됩니다.
즉 result = result * 3 이라는 연산을 할 때,
반복문 1회차 = 1 x 3 = 3 (result 변수에 저장됨)
반복문 2회차 = 3 x 3 = 9 (result 변수에 저장됨)
반복문 3회차 = 9 x 3 = 27 (result 변수에 저장됨)
와 같이 동작하므로 최종적으로 result 변수에 저장된 27 이라는 값이 println 을 통해서 출력되는 것입니다.
이해가 되셨을까요? ^^ 여전히 헷갈리신다면 다시 질문 남겨주세요!
감사합니다.
새해 복 많이 받으세요 :)
0
0