작성
·
216
답변 2
0
안녕하세요?
추가 답변 드립니다.
말씀하신대로 number 가 2 이고 exponent 가 3 일 때 2 를 3 번 곱하므로 2 2 2 = 8 이 됩니다. i 가 3 보다 작다는 조건을 만족하는 동안이므로 0, 1, 2, 3 이 아닌 0, 1, 2 까지 3 회에 걸쳐 (= 3번 반복하여) 현재의 result 에다가 number 를 곱한 값을 다시 result 에 저장하게 됩니다. 그래서 처음에는 2, 두번째는 4, 세번째는 8 이 되며 3번 반복이 끝나므로 result 에는 8 이 저장되어 있는 상태가 되지요 😊
i 는 반복 횟수를 지정하기 위한 목적으로 사용되었으며 exponent 가 되는 것은 아닙니다. exponent 로 주어진 값보다 작다는 조건을 만족하는 동안 1씩 키워가면서 횟수를 세는 정도의 용도로 이해해주시면 되겠습니다.
감사합니다.
0
안녕하세요?
하나씩 답변을 드리겠습니다 😊
1. result 에 1 을 설정하는 이유
int result = 1;
result 변수는 이름에서 의미하는 것처럼 결과가 저장되는 변수입니다. 거듭제곱 연산을 위해 전달받은 number 와 exponent 의 값에 따라 반복문을 수행하며 result 를 계속해서 업데이트 하게 되는 것인데요. 만약 number 가 2 고 exponent 가 3 이라면 2 를 3 번 곱하니 2 x 2 x 2 = 8 이 되겠지요. 즉 result 변수에 8 이 저장되게끔 하는 것이 이 메소드의 목표입니다.
처음 이 result 에 1 이 들어가있었다고 하면 반복문을 수행할 때마다 값이 이렇게 바뀔 거에요.
result | number | 업데이트 된 result
1회차 1 2 1 x 2 = 2 (2가 다음 회차로 넘어갑니다)
2회차 2 2 2 x 2 = 4 (4가 다음 회차로 넘어갑니다)
3회차 4 2 4 x 2 = 8 (다음 회차는 없네요)
결국 업데이트 된 result 는 8 이 저장되는 것이죠.
모든 수에 1 을 곱하면 그 수가 그대로 남게 됩니다. 2 x 1 = 2 이며 4 x 1 = 4 가 되는 것처럼요. 그래서 result 에 처음에는 1을 넣어줬습니다. 만약 1 이 아닌 0 이 들어간다면 어땠을까요?
result | number | 업데이트 된 result
1회차 0 2 0 x 2 = 0
2회차 0 2 0 x 2 = 0
3회차 0 2 0 x 2 = 0
엉뚱한 0 이라는 값이 result 변수에 저장되겠네요 😅
2. for 문의 i 역할
반복문 중에서 for 분은 일반적으로 인덱스(index) 의 첫글자를 딴 i 라고 하는 변수의 값을 증가시켜가며 반복을 수행합니다.
5회를 반복한다면 다음과 같이 할 수 있겠네요.
for (int i = 0; i < 5; i++) {
... 반복 작업 ...
}
그러면 반복이 일어날 때마다 i++ 이라는 증감 연산을 통해 i 는 0, 1, 2, 3, 4 와 같이 순차적으로 커지다가 5 가 되었을 때는 for 문 가운데 있는 조건 i < 5 를 만족하지 않으므로 더 이상 반복문을 수행하지 않고 탈출하게 되는 거에요. 주어진 횟수만큼 반복을 올바로 할 수 있도록 역할을 수행하는 것이 i 이며, 배열을 순회하는 경우라면 coffees[0] 와 같이 대괄호 속에 인덱스를 넣어서 값에 접근할 수 있으므로 반복문 속에서 i 를 0 위치에 넣어서 활용하기도 한답니다.
이렇게 사용해볼 수 있겠네요.
String coffees[] = new String[4];
coffees[0] = "아메리카노"; // 0 부터 시작
coffees[1] = "카페모카";
coffees[2] = "라떼";
coffees[3] = "카푸치노";
for (int i = 0; i < 4 i++) {
System.out.println(coffees[i]);
}
3번 질문에 대한 답변은 1번의 답변 내용에 포함되어 있답니다 😊
천천히 읽어보시고 그래도 이해가 가지 않으신다면 다시 질문 남겨주시면 다른 방법으로 설명 드리겠습니다.
감사합니다.
친절한 답변 감사드립니다!!
1번의 경우 추가적으로 궁금한 사항이 있습니다. number가 2이고, exponent가 3이라면 2*2*2 =8이 되는 게 이 메소드의 목표인 것까지 이해가 되었습니다.
i가 3보다 작다는 조건을 만족하는 동안(0, 1, 2, 3까지) result값에다가 number를 곱해준다고 하셨습니다. result 즉 결과가 8인데 왜 result number를 진행해야 하는지 궁금합니다.
추가적으로 for i에서 i가 index를 의미하는 거까지 이해가 되었습니다. 그렇다면 여기서 변수 i는 exponent라고 봐도 될까요?