해결된 질문
작성
·
206
·
수정됨
1
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요 선생님 수업을 듣다 궁금한 사항이 생겨서 여쭈어봅니다. 위 사진은 제가 작성한 코드 입니다.
Q1 . 1번을 누르고 처음 내용을 입력하고 다시 1번을 눌러 새로운 정보를 입력 후 2번으로 합계를 보내면 따로 처음 total값과 두번째 total값을 더하는 식이 없고 누적시키는 로직도 작성을 하지 않아 정상적으로 작동이 되면 안될 것 같은데 정상적으로 합계가 나오고, 누적한 total 값이 자동으로 합산되는 이유가 궁금합니다.
Q2. 일단 정상적으로 로직이 작동하여서 2번 결제를 선택 후 total 값을 확인하였고 변수를 초기화를 하지 않은것을 실행 후에 알게 되었는데, main에서 선언한 변수라 초기화가 되지 않고 값이 저장되어서 기록되는 것은 다른 질문을 보고 이해를 했지만 그렇게 되면 2번 결제 항목에서 초기화를 따로 시켜주지 않았는데도 불구하고 2번 결제를 선택 후 다시 1번으로 가서 값을 새로 입력하고 2번을 선택 하면 자동으로 초기화가 되어 새로 입력한 값만 불러와 졌는데 어떠한 원리로 이렇게 작동이 된것인지 궁금합니다.
항상 좋은 강의 감사합니다:)
답변 1
1
안녕하세요. 텅텅빈머리속님, 공식 서포터즈 OMG입니다.
A1.
total값을 누적하지 않기 때문에 1번의 상품 입력을 두번 실행하였다면
이후 2번 입력한 의 결재에서는 두번째 입력한 수량*가격의 값이 나와야 합니다. 뭔가 이상하네요. 입력했던 케이스를 올려주시겠어요?
A2. price, quantity, total은 이미 선언과 동시에 초기화가 되었기 때문에 아예 초기화를 하지 않은 것과는 실행에 차이가 있습니다. 초기화를 진행하였다면, 이후에 값이 변경되는 것은 문제가 되지 않습니다.
예를 들어, int price = 0;
으로 한번 초기화를 하였다면 이후 price = 10; price = 20;
이렇게 값이 계속 변경되는 것은
price라는 이름의 변수가 생성되었고 이것을 계속 재사용하는 것이기에 문제가 되지 않습니다.
감사합니다.
안녕하세요. 답변해 주셔서 감사합니다~!
주말동안 병원에 있어서 확인을 하지 못해서 늦게 답변 드리는 점 죄송합니다 ㅠㅠ
일단 Q1에 관한 내용은 다시 한번 확인을 해보았는데 정상적으로 누적이 안되는걸 확인했습니다. 아무래도 오류이거나 제가 신나서 이것저것 입력하다 보니 잘못본것 같습니다.
Q2에 대한 답변도 덕분에 이해가 됬습니다. 알려주셔서 감사합니다~!