inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

문제와 풀이

상품 주문 시스템 개발 문제 질문입니다

143

mm4884

작성한 질문수 5

0

image.png

여기서 sum에 +=가 아니라 =만 했을 때 마지막 인덱스의 총 결제 금액인 3000을 반환하던데 왜 그런 건지 모르겠습니다. 루프를 돌다 맨 마지막 인덱스의 값이 대입되어 그런 건가요?

java 객체지향

답변 2

0

생각하는자

예. 인프런 ai의 설명처럼 sum = oreder.price * oreder.quantiy; 이렇게 하면 for문을 돌릴때 마다 sum의 값이 계속 바뀝니다. (이유는 sum 이라는 변수에는 값을 하나만 저장할수 있기 때문)

forEach문에(sum = oreder.price * oreder.quantiy; 밑에)

이 코드 System.out.println("결제액 : " + sum); 를 추가해보시면 더 이해하기 쉬울 거에요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. mm4884님.

질문해 주신 내용에 대해 답변드리겠습니다. sum += order.price * order.quantity;sum = sum + order.price * order.quantity;와 동일한 표현입니다. 이 코드는 각 상품 주문에 대한 가격을 합산하여 sum 변수에 저장합니다.

만약 sum = order.price * order.quantity;로 작성되면, 루프 안에서 sum의 값이 단순히 현재 order의 금액만 저장하게 됩니다. 따라서 반복문이 마지막 인덱스의 order까지 돌았을 때 그 값만 반환하게 되는 것이죠. 그렇기 때문에 마지막 인덱스의 총 결제 금액 3000이 반환되는 것입니다.

이와 비슷한 질문은 다음 게시글에서도 확인 가능합니다:
- 기본형과참조형 문제풀이 질문입니다.

이 게시글에서는 변수 초기화 및 명확한 메서드 사용에 대한 충고를 하고 있으며, 여러 번 사용할 일이 없다면 변수 사용을 줄여도 괜찮다는 내용이 포함되어 있습니다.

다시 한번 요약하자면, += 연산자 없이 =로만 할당하면 매 반복마다 sum이 초기화되어 현재 인덱스의 주문 금액만 저장된다는 점을 기억해주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

질문있습니다

0

23

1

1번 문제 질문입니다.

0

29

1

음악플레이어 문제 중 코드질문

0

24

1

9장 상속 문제와 풀이 질문

0

35

1

강의 자료에 사소한 오타가 있습니다.

0

46

2

매서드 참조값 반환??

0

63

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

67

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

83

1

공부방법

0

72

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

80

1

static method 질문

0

63

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

93

1

Method1에서 Student 객체

0

71

1

3강 18. null 질문

0

65

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

73

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

95

1

문의

0

102

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

87

1

상속과 그에 따른 메모리 구조 질문

0

59

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

72

1

수강기한

0

133

1

기본편 객체지향 프로그래밍에 대한 정의

0

84

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

85

1

추가 지식 학습

0

150

2