전달값(Parameter) 강의에서 for문 이해가 필요합니다
436
9 asked
안녕하세요 나도코딩님 새해복 많이받으세요!
전달값(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 라고 해석을 안하는건가요?
매소드 너무 어렵습니다.. ㅠㅠ
Answer 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
132
2
static이 뭐였는지 기억이 안나요 ㅜㅜ
0
110
2
Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의
0
69
1
사고력 키우는 법이 어떤게 있나요?
0
87
2
getter setter
0
100
2
섹션9. 66 메소드 오버로딩 시 질문이 있습니다.
0
77
1
안녕하세요 갑자기 프로그램 에러가 떠서 안되네요
0
75
2
변수 이름짓는법
0
114
2
intelli J 실행오류
0
114
2
혹시 이건 수학적 사고가 부족한 걸까요?
0
152
2
영상이 재생이 안됩니다.
0
163
3
이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.
0
114
2
응용이 어렵습니다.
0
203
2
IntelliJ가 보이지 않습니다.
0
182
3
JDK 버전 문의
0
128
2
BlackBox 파일 내에서 메소드 정의
0
135
1
동기화
0
120
2
Iterator 문의
0
101
1
코드 순서 문의
0
139
1
클래스 메소드
0
146
2
Quiz_05 관련 질문드립니다 !
0
114
2
다운로드가 안됩니다
0
162
2
다형성
0
115
2
HashMap
0
75
2

