작성
·
189
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
예
[질문 내용]
안녕하세요 강사님 혹시 문제에 대한 이해가 되긴하지만 정확한 이해가 잘 안되다보니 질문을 남깁니다! productNames[] 와 productPrices[] 배열안에 productCount를 넣는 이유를 자세히 설명가능할까요..? 저는 for문으로 처음시도를해봤는데 안되고 한참을 고민하면서 여러시도를 한 끝에 해결이 되질않아 풀이과정을 봤습니다. 그래서 풀이방식이 궁금해져서요!! (제가 궁금해하는 부분에 대한 설명이 부족한거같아 추가로 더 적습니다! for문을 돌려
for(int i = 0; i <= maxProducts; i++) {
System.out.print("상품 이름을 입력하세요 :");
productNames[i] = sc.nextLine();
System.out.print("상품 이름을 입력하세요 :");
productPrices[i] = sc.nextInt();
productCount++; }
식으로 했습니다! 이방식이 안되는 이유도 궁금해서요!
답변 2
1
안녕하세요. missjj312님, 공식 서포터즈 y2gcoder입니다.
for 문은 반복 횟수가 정해진 반복에, while은 반복 횟수가 정해지지 않은 반복에 적합합니다! 그런데 상품 관리 프로그램 만들기 문제에서 프로그램을 종료하는 조건은 maxProducts 만큼 루프를 돌고 나서가 아닙니다 🙂
3 종료를 선택하기 전까지 상품 관리 프로그램은 계속 실행되고 있어야 합니다. 또한 maxProducts 는 최대로 등록할 수 있는 상품 수입니다. 해당 루프 동안 입력을 받는다고 하면, 만약 사용자가 도중에 등록만 하지 않고 2 상품 목록을 호출할 때는 어떻게 될 지 생각해보시면 좋겠습니다!
그런 의미에서 maxProducts 만큼 반복하는 for문을 사용하는 것은 우리 상품 관리 프로그램에 버그를 넣어주게 됩니다(3. 종료를 입력하는 것 외에 maxProducts 수만큼 입력받고 나면 자동으로 종료되는 버그가 생긴 것입니다! 그런 요구사항은 없습니다 🙂 )
감사합니다.
감사합니다!