인프런 커뮤니티 질문&답변
전달값(Parameter) 강의에서 for문 이해가 필요합니다
작성
·
432
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





