TIL#13-1

DuBu·2023년 6월 26일
0

일본IT JAVA 연수과정

목록 보기
21/61

Array

  • 배열의 디폴트 초기화
    • 인스턴스 배열 (참조 변수 배열)은 모든 요소 null로 초기화
    • 기본 자료형 배열은 모든 요소 0으로 초기화

Enhanced for문

for each

  • 배열 요소 전체 출력
  • Read만 되고 Write는 안된다.
int[] ar = {1,2,3,4,5};
		// 일반적인 for 반복
		for(int i = 0; i < ar.length; i++) {
			System.out.println(ar[i]);
		}
		
		//for each
		for(int e:ar) {
			System.out.print(e + " ");
		}
		System.out.println();
		
		int sum = 0;
		
		//배열 요소 전체 합 출력
		for(int e:ar) {
			sum += e;
		}
		System.out.println("sum: " + sum);

2차원 배열

  • 2차원 배열의 생성
int[][] arr2 = new int[3][4];
// 3행 4열의 배열
  • 2차원 배열의 초기화
int[][] arr2 = {
	{1,2,3},
    {4,5,6},
    {7,8,9},
}

int[][] arr = { { 11 }, { 22, 33 }, { 44, 55, 66 } };

// 배열의 구조 대로 출력
for (int i = 0; i < arr.length; i++) {
	for (int j = 0; j < arr[i].length; j++) {								System.out.print(arr[i][j] + "\t");
		}
	System.out.println();
}

2차원 배열 메모리 구조도

1~10까지의 행,열을 갖고, 대문자 알파벳을 랜덤으로 갖는 2차원 배열을 출력하시오.

public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
        int rows, columns;

        while (true) {
            System.out.print("행의 크기를 입력하세요 (1~10): ");
            rows = scanner.nextInt();
            System.out.print("열의 크기를 입력하세요 (1~10): ");
            columns = scanner.nextInt();

            if (rows >= 1 && rows <= 10 && columns >= 1 && columns <= 10) {
                break;
            } else {
                System.out.println("반드시 1~10 사이의 정수를 입력해야 합니다.");
            }
        }

        char[][] array = new char[rows][columns];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                array[i][j] = (char) (65 + (int) (Math.random() * 26));
            }
        }

        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                System.out.print(array[i][j] + " ");
            }
            System.out.println();
        }
       scanner.close();
	}

String 2차원 배열 6행 6열을 만들고 행의 맨 위와 제일 앞 열은 각 인덱스를 저장하세요. 그리고 사용자에게 행과 열을 입력 받아 해당 좌표의 값을 'X'로 변환해 2차원 배열을 출력하세요.

public class Main{
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String[][] array = new String[6][6];

        // 행의 맨 위에 인덱스 저장
        for (int i = 0; i < 6; i++) {
            array[0][i] = String.valueOf(i);
        }

        // 열의 제일 앞에 인덱스 저장
        for (int i = 0; i < 6; i++) {
            array[i][0] = String.valueOf(i);
        }

        // 좌표 입력 받아 해당 좌표의 값을 'X'로 변환
        while (true) {
            System.out.print("행의 좌표를 입력하세요 (1~5): ");
            int row = scanner.nextInt();
            System.out.print("열의 좌표를 입력하세요 (1~5): ");
            int column = scanner.nextInt();

            if (row >= 1 && row <= 5 && column >= 1 && column <= 5) {
                array[row][column] = "X";
                break;
            } else {
                System.out.println("반드시 1~5 사이의 정수를 입력해야 합니다.");
            }
        }

        // 배열 출력
        printArray(array);
    }

    // 2차원 배열 출력 메소드
    public static void printArray(String[][] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[0].length; j++) {
            	if (array[i][j] == null) {
                    System.out.print("  "); // 빈 칸 출력
                } else {
                    System.out.print(array[i][j] + " ");
                }            }
            System.out.println();
        }
        System.out.println();
    }
}

0개의 댓글