JAVA

[JAVA] 김영한 자바 입문 - 배열 문제와 풀이 3

집돌이디벨로퍼 2025. 1. 9. 17:47
package ArrayEx;

import java.util.Scanner;

public class ArrayEx9 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String[] productNames = new String[10];
        int[] productPrices = new int[10];
        int productCount = 0; // 상품 카운트

        while (true) {
            System.out.println("1. 상품등록 | 2. 상품 목록 | 3. 종료"); // 등록할때마다 productCount+1 되도록
            System.out.print("메뉴를 선택하세요: ");
            int number = input.nextInt();
            String skip = input.nextLine(); // 앞에 int가 띄어쓰기까지 안먹어서 이걸로 대신 먹어줌

            if (number == 1) {  // 상품등록
                if(productCount ==10){
                    System.out.println("더이상 상품을 등록할 수 없습니다.");
                    continue;
                }
                System.out.println("상품의 이름을 입력하세요: ");
                productNames[productCount] = input.nextLine();
                System.out.println("상품의 가격을 입력하세요: ");
                productPrices[productCount] = input.nextInt(); // 상품 가격 입력
                productCount++;
            }
                if (number == 2) {
                    if(productCount == 0){
                        System.out.println("등록된 상품이 없습니다");
                        continue;
                    }
                    for (int i = 0; i < productCount; i++) {
                        System.out.println(productNames[i] + ": " + productPrices[i]);
                    }

                }
                if (number == 3) {
                    System.out.println("프로그램을 종료합니다.");
                    break;
                }
            }

        }
    }

 

얻은 개념

- 배열은 크기를 정해놓고 쓰는 것

- while문안에서 if문만 빠져나오고 싶을때 => continue 사용 / return 사용시 아예 while문이 종료된다.

- 배열이 필요한 이유는 여러개의 중복된 변수를 처리하기 위해서 사용하는 것

- 배열 생성시 값 0으로 초기화(int)

- 1.배열 생성 2. 배열로 가는 참조값 3. 참조값을 따라감 4.배열의 위치 확인 5. 사용

- 배열의 초기화 종류

=> int[] arr = new int[n];

=> int[] arr = {88,22,33}; // 편리함

- 2차원 배열은 행렬을 만든다고 생각하고 하면 편하다.

int [][] arr = new int[][]{ // arr의 요소는 2개(행개수)
            {1,2,3},
            {4,5,6},
            {7,8,9}
        };

이런식으로 만들면 편하다.

 

- 하나의 길이를 알수 없는 배열을 편하게 나열하기 위한 해결법 => 향상된  for문

 int[] numbers = {1,2,3,4,5};

        //일반 for문
        for( int i = 0; i<numbers.length;i++){
            int number = numbers[i];
            System.out.println(number);
        }
        System.out.println();

        System.out.println("으아니");
        //향상된 for문, for-each문
        for (int number : numbers){ // 인덱스 사용X, 종료조건 X, 단순하게 처음부터 끝까지 해당배열 탐색
            System.out.println(number);
        }

        //for-each문을 사용할 수 없는 경우, 증가하는 index 값 필요함
        for (int i = 0; i<numbers.length; i++){
            System.out.println("number"+ i + "번의 결과는: "+ numbers[i]);
        }