본문 바로가기
Programming/Java

[Java] 6. 배열 (Part 2)

by Rayched 2022. 10. 19.

0. 개요

https://rclogstorage.tistory.com/m/21

 

[Java] 6. 배열 (Part 1)

1. 개요 변수에서 반복문까지 설명하면서 변수를 여러 개를 선언한 경우는 많이 없었고 많이 선언해봤자 2~3개 정도였었다. 하지만 실제로 프로그램을 만들면 변수 선언을 할 일이 아주 많을 것

rclogstorage.tistory.com

앞에서 배열의 정의와 생성 방법, 예제 문제 몇 가지를 통해서 배열의 기초에 대해 설명했었다.

이번에는 제시된 배열 문제를 다양한 방법으로 풀어보고, 이를 해설하는 과정을 위주로 설명하겠다.

 

1. 문제

//배열 문제
//조건 1: 'arr1'에 [true, true, false] 저장
//조건 2: 'arr2'에 [3.14, 5.55, 10.0] 저장
//조건 3: 'arr3'에 [1, ... ,10] 저장

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

제시된 문제의 조건 세 가지를 확인해보자.

배열 변수 arr1, arr2, arr3을 각각 연결할 값에 맞는 데이터 타입으로 선언하면 된다.

arr1은 논리 값 3개를 저장해야 하므로 boolean형 변수로 선언하고, 필요한 공간은 3개이다.

arr2는 실수 값 3개를 저장해야 하므로 float나 double형으로 선언하고, 필요한 공간은 3개이다. arr3은 저장할 값이 1부터 10으로, 총 10개의 정수 값을 저장해야 한다. int형으로 선언해야 하고 필요한 공간은 10개이다.

이제 문제를 풀어보자.

 

2. 풀이 및 해설

① 첫 번째 풀이

//배열 문제 풀이 1
//조건 1: arr1에 [true, true, false] 연결
//조건 2: arr2에 [3.14, 5.55, 10.0] 연결
//조건 3: arr3에 [1 ~ 10] 연결

package com.ArrSample;

public class Main {

  public static void main(String[] args) {
  	  //조건 1
      boolean[] arr1 = new boolean[3];
      arr1[0] = true;
      arr1[1] = true;
      arr1[2] = false;
      System.out.println("=== arr1 출력 ===");
      System.out.println(arr1[0]);
      System.out.println(arr1[1]);
      System.out.println(arr1[2]); 
      
      //조건 2
      double[] arr2 = new double[3];
      arr2[0] = 3.14;
      arr2[1] = 5.55;
      arr2[2] = 10.0;
      System.out.println("=== arr2 출력 ===");
      System.out.println(arr2[0]);
      System.out.println(arr2[1]);
      System.out.println(arr2[2]);
      
      //조건 3
      int[] arr3 = new int[10];
      arr3[0] = 1;
      arr3[1] = 2;
      arr3[2] = 3;
      arr3[3] = 4;
      arr3[4] = 5;
      arr3[5] = 6;
      arr3[6] = 7;
      arr3[7] = 8;
      arr3[8] = 9;
      arr3[9] = 10;
      System.out.println("=== arr3 출력 ===");
      System.out.println(arr3[0]);
      System.out.println(arr3[1]);
      System.out.println(arr3[2]);
      System.out.println(arr3[3]);
      System.out.println(arr3[4]);
      System.out.println(arr3[5]);
      System.out.println(arr3[6]);
      System.out.println(arr3[7]);
      System.out.println(arr3[8]);
      System.out.println(arr3[9]);
  }
}

 

각, 배열에 저장한 값이 Console에 출력되는 것을 확인할 수 있다.

제시된 조건에 맞춰서 소스 코드를 작성하고, 프로그램을 실행하면 위와 같은 출력 결과가 나오는 것을 확인할 수 있다.

 

② 두번째 풀이 (for 반복문 활용 버전)

이제 여기서 '조건 3', int형 배열 변수 arr3 부분을 다시 확인해보자.

하나하나 직접 배열 공간에 값을 저장하고, 이를 출력하는 방식으로 작성한 코드다.

만약 실무에서 배열을 다루게 되면 이거보다 더 많은 값을 입력해야 하는 경우가 많다고 들었다.

arr3에 1부터 10까지 값을 순차적으로 저장하기 때문에, for 반복문을 활용해서 값을 저장 및 출력이 가능하다.

//배열 문제
//조건 1: arr1에 [true, true, false] 연결
//조건 2: arr2에 [3.14, 5.55, 10.0] 연결
//조건 3: arr3에 [1, ... , 10] 연결

public class Main {
    public static void main(String[] args){
        boolean[] arr1 = new boolean[3];
        arr1[0] = true;
        arr1[1] = true;
        arr1[2] = false;
        System.out.println("=== arr1 출력 ===");
        System.out.println(arr1[0]);
        System.out.println(arr1[1]);
        System.out.println(arr1[2]);

        double[] arr2 = new double[3];
        arr2[0] = 3.14;
        arr2[1] = 5.55;
        arr2[2] = 10.0;
        System.out.println("=== arr2 출력 ===");
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);

        int[] arr3 = new int[10];
        System.out.println("=== arr3 출력 ===");
        for(int i = 0; i < arr3.length; i++){
        //임의의 변수 i를 선언하고, 값을 0으로 초기화한다.
        //arr3.length; => 배열 변수 arr3의 배열 길이를 구하는 명령문
        //arr3의 배열 길이는 10이다.
        //반복 실행 조건은 'i의 현재값이 arr3의 배열 길이(10)보다 작을 때'이다.
        //i의 현재 값이 10보다 커지면 반복문을 빠져나온다.
            arr3[i] = i + 1;
            //배열은 0부터 시작한다.
            //저장할 값은 1 ~ 10
            //arr3의 0번째 칸에 정수 1을 저장한다.
            //그러므로 저장할 칸을 i로 지정하고, 저장할 값을 'i+1'로 지정하면
            //arr3에 값을 저장하는 것을 계속 반복하게 된다.
            System.out.println(arr3[i]);
        }
    }
}

위와 같이 코드를 작성하고 프로그램을 실행하면 아래와 같은 출력 결과가 나올 것이다.

for문 활용한 배열 문제 풀이, 출력 결과


3. 마치며

이걸로 배열에 대한 내용 정리가 완료됐다.

사실 배열 내용 정리는 오래전에 해놓은 상태였지만, 변수부터 반복문까지 순서대로 업로드를 해야 해서

정리는 일찍 됐지만, 게시는 제일 늦어진 편이다.

마지막으로 내용을 본 것이 2개월 전이라서 그런지

머릿속이 정리가 덜 된 상태로 글을 작성하게 된 것 같다.

다음에 작성할 것은 '클래스와 객체'에 대한 부분이다.

여기서부터가 자바 공부의 진짜 시작이라고 본다.아마도 내용을 정리하고, 그걸 다듬어서 티스토리에 작성하는 과정이 더 오래 걸릴 수도 있을 것 같다.

 

'Programming > Java' 카테고리의 다른 글

[Java] 7. 클래스와 객체 (Part 2)  (0) 2022.11.21
[Java] 7. 클래스와 객체 (Part 1)  (0) 2022.10.28
[Java] 6. 배열 (Part 1)  (0) 2022.10.19
[Java] 5. 반복문  (0) 2022.10.11
[Java] 4. 조건문  (1) 2022.10.05