ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | Array 배열 활용, 확장 for문
    JAVA/JAVA 2020. 1. 28. 22:38

    Array 배열 활용


    사용례_for문 활용

    배열은 같은 자료형의 여러 값을 모아둔 것이기 때문에 for문과 함께 자주 사용됨

    배열의 인덱스를 통해 데이터를 제어할 필요가 있을 때는 for문을 사용하는 것이 유용함

    public class ArgTest {
    
        public static void main(String[] args) {
            // 10개의 int형 데이터를 갖는 배열 arrayTest 선언
            int[] arrayTest = new int[10];
    
             // for문을 이용해서 arrayTest에 10 ~ 100의 값을 저장
            for (int i = 0; i < 10; i++) {
                arrayTest[i] = (i + 1) * 10;
            }
    
             // for문으로 배열 각각의 값을 출력
            for (int i = 0; i < arrayTest.length; i++) {
                System.out.println(arrayTest[i] + "\t");    // \t: tab만큼의 공백을 뜻함
            }
             // 10    20    30    40    50    60    70    80    90    100
        }
    
    }

    array.length : array 배열의 원소 개수(길이) 반환


    확장 for문 (향상된 for문)

    배열 내의 모든 값을 순회하는 for문의 향상된 형태

    배열의 모든 요소를 스캔하는 과정에서 인덱스 자체의 값이 필요하지 않을 때는 확장 for문이 유용함

    확장 for문은 배열의 리스트를 순회할 때 요소의 값을 변경하지 않고 읽기만 할 때 주로 사용


    형식

    for([배열 자료형][변수명]:[배열명] or [컬렉션 객체명]){
        // 각각의 변수에 적용할 Java Code;
        // 변수는 배열 내의 각각의 값을 뜻함
    }

    사용례

    for문 활용에서 다룬 예제를 확장 for문으로 바꿔서 적용

    public class ArgTest {
    
        public static void main(String[] args) {
            int[] arrayTest = new int[10];
            for (int i = 0; i < 10; i++) {
                arrayTest[i] = (i + 1) * 10;
            }
    
             // 확장 for문
            for(int num:arrayTest) {
                System.out.print(num + "\t");
            }
            // 10    20    30    40    50    60    70    80    90    100    
        }
    
    }
    

    사용례_Scanner 활용

    package j200128;
    
    // Scanner 클래스 import
    import java.util.Scanner;
    
    // 과목별 점수를 입력받아서 성적을 처리하는 프로그램
    public class ArgTest3Sum {
    
        public static void main(String[] args) {
    
            // 과목 이름을 저장한 subject 배열 생성
            String[] subject = { "현대철학", "중세철학", "고대철학", "존재와 시간", "소유냐 존재냐" };
    
            // 과목 점수를 저장할 score 배열 생성
            int[] score = new int[5];
    
            // 합계 sum, 평균 avg 초기화
            int sum = 0;
            double avg = 0.0;
    
            // Scanner 클래스를 이용해서 표준입력으로 문자열을 입력받는 sc 객체 생성
            Scanner sc = new Scanner(System.in);
    
            // 배열에 각각의 점수를 입력받고, 점수의 합계를 계산
            for (int i = 0; i < score.length; i++) {
                System.out.println("[" + subject[i] + "]" + " 점수를 입력하세요");
                score[i] = sc.nextInt();
                sum += score[i];
            }
    
            // 평균 계산: 점수 총합을 과목 수로 나눔, double형으로 형변환 해주어야 소수점이 표현됨
            avg = (double) sum / (double) score.length;
    
            // 과목마다 점수를 출력하는 for문
            for(int i = 0; i<subject.length; i++) {
                System.out.println(subject[i] + " 점수: " + score[i]);
            }
    
            // 총합과 평균 계산
            System.out.println("총합: " + sum);
            System.out.println("평균: " + avg);
    
             // 결과
             /*
             [현대철학] 점수를 입력하세요
             88
             [중세철학] 점수를 입력하세요
             98
             [고대철학] 점수를 입력하세요
             66
             [존재와 시간] 점수를 입력하세요
             100
             [소유냐 존재냐] 점수를 입력하세요
             29
             현대철학 점수: 88
             중세철학 점수: 98
             고대철학 점수: 66
             존재와 시간 점수: 100
             소유냐 존재냐 점수: 29
             총합: 381
             평균: 76.2
             */
        }
    
    }

    배열의 몇 가지 활용에 대해 알아보았습니다.

    배열은 기본적으로 for문과 굉장히 많이 사용된다고 하니,

    for문과의 기본적인 활용에 대해서는 알아 둘 필요가 있겠습니다.

    확장 for문의 경우 기존의 for문보다 간결하게 작성할 수 있기 때문에

    인덱스에 따른 조작이 필요하지 않은 경우에는 확장 for문 역시 유용하게 쓰일 수 있어 보입니다.

    Scanner에 대해서는 다음 글에서 다룰 예정입니다. 

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

    Java | String Method & API 문서 참조 방법  (0) 2020.01.29
    Java | Scanner  (0) 2020.01.28
    Java | Array 배열  (0) 2020.01.28
    Java | Static 정적 변수 & 정적 메소드  (0) 2020.01.28
    Java | Java 메모리 구조  (0) 2020.01.28

    댓글

Designed by Tistory.