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]);
}