문제와 풀이3 - productAdminEx 문제 질문입니다.
package inflearn.array.ex;
import java.util.Scanner;
public class ProductAdminEx {
public static void main(String[] args) {
// 상품 관리 프로그램 만들기 -> 처음에 for문으로 구성했으나 null 출력이 많은듯...
int maxNumber = 10;
String[] productNames = new String[maxNumber];
int[] productPrices = new int[maxNumber];
int productCount = 0;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("1. 상품 등록 | 2. 상품 목록 | 3. 종료");
System.out.print("메뉴를 선택하세요: ");
int menu = scanner.nextInt();
scanner.nextLine();
if (menu == 1) {
if (productCount > 10) {
System.out.println("더 이상 상품을 등록할 수 없습니다.");
}
System.out.print("상품 이름을 입력하세요: ");
productNames[i] = scanner.nextLine();
System.out.print("상품 가격을 입력하세요: ");
productPrices[i] = scanner.nextInt();
productCount++;
} else if (menu == 2) {
if (productCount == 0) {
System.out.println("등록된 상품이 없습니다.");
continue;
} else {
System.out.println(productNames[i]);
}
for (int j = 0; j < productCount; j++) {
System.out.println(productNames[j] + ": " + productPrices[j] + "원");
}
} else {
System.out.println("프로그램을 종료합니다");
break;
}
}
}
}이렇게 for문을 썼을 때, 상품을 등록하고 2번 프로그램 목록보기를 선택하면 null 이 섞여나오는데 이유를 알고 싶습니다!
강의에서는 while문을 통한 무한루프를 사용하였는데 for문으로도 풀어보다 궁금해서 질문 올립니다!
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
Answer 1
1
안녕하세요. Banksy님, 공식 서포터즈 OMG입니다.
올리신 코드를 실행해서 확인해보았습니다 😀

우선 위와 같이 입력을 했을 때 상품이름이 null로 출력되는 것을 확인하였는데요,
null이 출력되는 이유는 아래의 productNames배열에 저장된 데이터와 index 값(i)를 보면 확인할 수 있습니다.

현재 상품은 1개만 저장된 상태인데요, 하지만 출력하는 데이터(productNames[i])를 보시면 i(반복문 횟수에 대한 인덱스)로 상품의 배열을 출력하는 인덱스에 사용함으로써 productNames[1]을 출력하여 null을 출력하는 상황으로 보시면 됩니다 ^^
감사합니다.
문제와 풀이4 문제점
0
42
2
문제풀이 시간마다 방향성
0
39
2
피라미드 문제 풀이
0
71
1
ScannerWhile3 예제 코드 질문
0
55
1
짝수 출력 문제 질문
0
50
1
Array 연습 문제 5번 질문입니다.
0
84
2
단축어가 이상하게 나옵니다
0
128
2
Sql강의
0
90
1
array 문제풀이 2번 질문입니다.
0
55
1
JAVA입문 / 메서드편 문제와 풀이2
0
47
1
인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요
1
801
3
OperationEx3에서 꼭 boolean을 써야 하나요?
0
59
1
for, while문 작성
0
65
1
68강 ArrayEx6 클래스 질문
0
60
1
IO.println(String.format("Hello and welcome!"));
0
149
2
소스코드 실행이 안돼요
0
119
2
메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?
0
79
1
While과 for 스코프 질문
0
63
1
김영한 java 입문 설치 질문
0
137
2
버퍼문제?
0
54
1
for문 피라미드 찍는거 질문
0
78
1
21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.
0
375
1
3번 문제 질문 있습니다.
0
99
2
sout에는 변수가 하나만 들어가야 하나요?
0
134
1

