본문 바로가기
JAVA/배열

배열 예제(4)

by pms93 2022. 7. 21.
package arrays;

import java.util.Scanner;

public class Quiz09 {

	public static void main(String[] args) {
		
		// Quiz
		// 건물층수, 각 층마다의 호수, 거주자의 이름을 입력받아 출력하는 코드 작성
		Scanner sc = new Scanner(System.in);
		int floor, ho;
		System.out.println("===== 아파트 입주자 정보 =====");

		while (true) {
			try {
				System.out.print("건물의 층수를 입력하세요 : ");
				floor = sc.nextInt();
			} catch (Exception e) {
				System.out.println("잘못된 형식의 입력입니다...");
				sc.nextLine();
				continue;
			}
			break;
		}

		// 거주자의 이름만이 아닌 다른 데이터에 대한 입력 대비를 위해 3차원 배열로 진행.
		String array[][][] = new String[floor][][]; 

		for (floor = 0; floor < array.length; floor++) {
			try {
				System.out.printf("%d층의 총 호실 입력 : ", floor + 1);
				ho = sc.nextInt();
			} catch (Exception e) {
				System.out.println("잘못된 형식의 입력입니다...");
				sc.nextLine();
				floor--;
				continue;
			}
			// 각 방 거주자의 이름만이 아닌 다른 데이터를 입력받기 위해선 배열 마지막 상수는 1이 아닌 다른 값으로 변경되어야 한다.
			array[floor] = new String[ho][1];
		}

		sc.nextLine();

		for (floor = 0; floor < array.length; floor++)
			System.out.printf("%d층은 %d호실까지 있습니다.\n", floor + 1, array[floor].length);

		for (floor = 0; floor < array.length; floor++) {
			for (ho = 0; ho < array[floor].length; ho++) {
				System.out.printf("%d층 %d호실 입주자 : ", floor + 1, ho + 1);
				array[floor][ho][0] = sc.nextLine();
			}
			System.out.println();
		}

		System.out.println("========== 입주자 정보 ==========");
		for (floor = 0; floor < array.length; floor++) {
			for (ho = 0; ho < array[floor].length; ho++)
				System.out.printf("%d층 %d호실 입주자 : %s\n", floor + 1, ho + 1, array[floor][ho][0]);
		}

	}
}

'JAVA > 배열' 카테고리의 다른 글

배열 예제(5)  (0) 2022.07.21
배열 예제(3)  (0) 2022.07.20
배열 예제(2)  (0) 2022.07.20
배열 예제(1)  (0) 2022.07.20
Array_다차원배열(3)  (0) 2022.07.20