inflearn logo
강의

Course

Instructor

Kim Young-han's Java Tutorial - Your First Step into Java with Code

Problems and Solutions 3

문제와 풀이3 - productAdminEx 문제 질문입니다.

Resolved

444

Banksy

9 asked

2

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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

java 객체지향

Answer 1

1

OMG

안녕하세요. Banksy님, 공식 서포터즈 OMG입니다.

올리신 코드를 실행해서 확인해보았습니다 😀

image

우선 위와 같이 입력을 했을 때 상품이름이 null로 출력되는 것을 확인하였는데요,

null이 출력되는 이유는 아래의 productNames배열에 저장된 데이터와 index 값(i)를 보면 확인할 수 있습니다.

image

현재 상품은 1개만 저장된 상태인데요, 하지만 출력하는 데이터(productNames[i])를 보시면 i(반복문 횟수에 대한 인덱스)로 상품의 배열을 출력하는 인덱스에 사용함으로써 productNames[1]을 출력하여 null을 출력하는 상황으로 보시면 됩니다 ^^

 

감사합니다.

2

Banksy

답변 감사합니다!!

문제와 풀이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