스크린샷 2025-08-11 오후 4.36.04.png

package com.haenin.section01.array;

import java.util.Arrays;

public class Application1 {
    public static void main(String[] args) {

        /* 목표, 배열에 대해 이해하고  */
        int[] arr = new int[5]; /* 필기. heap 영역에 [0][0][0][0][0]  */
        System.out.println(arr[0]);
        System.out.println(arr);

        arr[0] = 10;
        arr[1] = 20;
        arr[2] = 30;
        arr[3] = 40;
        arr[4] = 50;

        for (int i = 0; i < 5; i++) {
            arr[i] = 10 * (i+1);
        }
        /* 설명. 반복문 없이 1차원 배열 출력해보기 */
        System.out.println(Arrays.toString(arr));
    }
}

package com.haenin.section01.array;

import java.util.Arrays;

public class Application2 {

    public static void main(String[] args) {
        /* 목표, 배열의 사용방법을 익혀 배열을 사용할 수 있다. */
        /* 설명.
        *   배열의 사용방법
        *     1. 배열의 선언
        *     2. 배열의 크기 할당
        *     3. 배열의 인덱스 공간에 값 대입
        * */

        /* 설명. 배열의 선언 및 초기화는 따로 진행할 수 있다. */
        int[] iArr;
        char cArr[];    // []의 위차가 변수면 뒤에 있어도 동작하지만 지양하자

        iArr = new int[5];
        cArr = new char[5];

        /* 설명. 참조자료형을 출력하면 실제로는 해당 자료형의 toString()이 실행된다. */
        System.out.println("iArr = " + iArr);
        System.out.println("iArr의 10진수 주소: " + iArr.hashCode());
        System.out.println("iArr 배열에 담긴 값:  " + Arrays.toString(iArr));
        /* 필기. 참조자료형이 들어옴 -> 주소값 iArr.toString()이 자동으로 작성, 참조자료형이 들어와서 투스트링이 붙는다 생각 */

    }
}

package com.haenin.section01.array;

import java.util.Arrays;

public class Application3 {
    public static void main(String[] args) {
        /* 목표, 배열에 들어갈 초기 기본값 및 전달인자로써의 배열 자료형 */
        /* 설명.  
        *   값의 형태별 기본값
        *   정수: 0 
        *   실수: 0.0
        *   논리: false
        *   문자: \\u0000, \\0
        *   참조: null
        * */
        
        int[] iArr = new int[5];
        iArr = null; /* 필기. 실제 값이 없다. 힙영역 주소를 가지고 있지 않다. */
        System.out.println(iArr);

        /* 설명. 크기 및 원하는 값이 채워진 상태의 배열 바로 만들어보기 */
        int[] iArr2 = {10, 11, 12, 13, 14};
        int[] iArr3 = new int[]{20, 21, 22, 23, 24};

        System.out.println(Arrays.toString(iArr2));
        System.out.println(Arrays.toString(iArr3));
        
        /* 설명. 다만 new연산자를 생략해서 안되는 경우가 있다. */
        test(new int[]{10, 11, 12, 13, 14});
//        test({10, 11, 12, 13, 14});  /* 필기. new 연산자 없이 x */
    }

    private static void test(int[] iArr2) {
        System.out.println("메소드에서 넘겨받은 배열 확인: "+ Arrays.toString(iArr2));
    }
}
package com.haenin.section01.array;

import java.util.Arrays;
import java.util.Scanner;

public class Application4 {
    public static void main(String[] args) {
        /* 목표, 배열을 사용하는 예시를 작성할 수 있다. */
        int[] score = new int[5];

        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            System.out.println(( i+1 ) + "번째 학생의 자바 점수를 입력하세요: ");
            score[i] = sc.nextInt();

        }
        System.out.println("현재까지 입력된 점수들: " + Arrays.toString(score));

        /* 설명. 합계(sum) 구하기 */
        /* 설명.
        *   배열은 그 길이를 활용해야 할 때 length라는 변수에 접근해서 활용할 수 있다.
        *   ( 유지보수 측면 및 입력된 크기의 배열이 할당될 때 사용하는 것 )
        * */
//        int sum = 0;
//        for (int i = 0; i < score.length; i++) {
//            sum += score[i];
//        }
//        System.out.println("합계 = " + sum);

        /* 설명. 향상된 for문(또는 foreach문) 활용하기(처음부터 끝까지 순회) */
        int sum = 0;
        for (int s : score) {
            sum += s;       // [] 없는 변수 활용 가능
        }
        System.out.println("합계: " + sum);

        double avg = sum / (double)score.length;
        System.out.println("평균: " + avg);

    }
}

package com.haenin.section01.array;

public class Application5 {
    public static void main(String[] args) {
        /* 목표, 1차원 배열을 사용해 무작위 카드 뽑기 */
        String[] shape = {"SPADE", "CLOVER", "HEART", "DIAMOND"};
        String[] number = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "JACK", "QUEEN", "KING", "ACE"};

        int randomShape = (int)(Math.random() * 4);
        int randomNumber = (int)(Math.random() * 13);

        System.out.println("당신이 뽑은 카드는 \\"" +  shape[randomShape] + " " + number[randomNumber] + "\\"입니다.");
    }
}