반응형

점수를 입력받을 score 배열 크기 5

순위를 매길 rank 배열 크기 5

 

8번째 줄 for문을 통해 점수를 총 5차례 입력 받습니다.

13번째 줄 : 입력받은 점수 5개를 출력해줍니다.

18번째 줄 : index를 임시저장변수로 두고 i번째 점수를 index에 저장한 후 

19번째 줄 : score[j]배열을 사용하여 index에 저장된 점수와 비교하여 index의 값이 더 작다면 순위가 낮아야하므로 1을 증가시킵니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Scanner sc = new Scanner(System.in);
        
        int[] score = new int[5];
        int[] rank = new int[5];
        
        int index = 0;
        
        for(int i=0; i<score.length; i++) {
            System.out.print(i + 1 + "번 점수 입력 : ");
            score[i] = sc.nextInt();
            rank[i] = 1;
        }
        for (int i=0; i<score.length; i++) {
            System.out.println(score[i] + " ");
        }
        
        System.out.println();
        for(int i=0; i < score.length; i++) {
            for (int j=0; j<score.length; j++) {
                index = score[i];
                if(score[j] > index) 
                    rank[i] += 1;
            }
        }
        System.out.println("결과는 ");
        for(int i =0; i<rank.length; i++) {
            System.out.println(score[i] + "점은 " + rank[i] + "등");

 

출력 결과

 

1
2
3
4
5
6
7
8
9
10
11
12
95 
75 
66 
84 
10 
 
결과는 
95점은 1등
75점은 3등
66점은 4등
84점은 2등
10점은 5등
반응형
반응형

배열

성격과 크기가 일치하는 여러개의 기억 장소에 대해 대표명을 주고 첨자로 각 기억장소를 구분

반복처리에 효과적이다 !

 

배열 선언

 

방법1) 데이터 타입[] 배열 변수명

방법2) 데이터 타입 배열 변수명[];

ex) String[] name;

ex) int num[];

 

배열 생성

 

배열은 자바에서 객체 취급한다.

new 연산자에 의해 객체를 생성하고 할당받을 때는 배열의 크기를 정해준다.

데이터는 배열의 크기만큼 사용 가능하고

배열의 크기는 지정 이후 변경이 어렵습니다.

 

ex) name = new String[5];

ex) num = new int[10];

 

소스를 통해 알아보겠습니다.

 

변수 ar에 크기 5에 할당하는 배열을 주었습니다.

 

알아두면 유용한 문법 ! 

배열변수명.length : 배열의 크기를 알 수 있습니다 !
ar[0] 의 값은 10
ar[1] 의 값은 20 으로 할당해주었습니다.
ar[4] 의 값은 ar[0] 과 ar[1]의 데이터 값을 더한 값이므로 40
ar[3] 은 설정해준 값이 없으므로 0을 출력합니다.

 

1
2
3
4
5
6
int ar[] = new int[5]; // 배열의 크기를 5로 할당
        System.out.println("ar의 크기 : " + ar.length);
        ar[0= 10; ar[1= 20;
        ar[4= ar[0+ ar[1];
        System.out.println("ar[4]의 크기 : " + ar[4]);  // ar[0]의 10과 ar[1]의 20을 더하여 30 출력
        System.out.println("ar[3]의 크기 : "+ar[3]); // ar[3]은 정해준 데이터 값이 없어 0 출력
1
2
3
ar의 크기 : 5
ar[4]의 크기 : 30
ar[3]의 크기 : 0

다차원 배열

 

int num[][] = new int[][]; // 2차원 배열 - [행][열]

 

차원이 늘어갈수록 for는 다중으로 입력해주어야한다.

ex) 2차원 배열은 for문 2개

 

su 배열에 3행 4열의 크기를 주었습니다.

 

num은 10으로 for문을 통해 해당하는 배열의 행과열에 num 값을 1씩 증가시켜서 저장했습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
        int su[][] = new int[3][4];
 
        int num = 10;
 
 
        for(int i=0; i <su.length; i++) {
            for(int j=0; j<su[i].length; j++) {
 
            su[i][j] = num++;
            System.out.print(su[i][j] + " ");
            }
            System.out.println();
        }
 

출력 결과

1
2
3
4
10 11 12 13 
14 15 16 17 
18 19 20 21 
 

가변배열

 

예를 들어 설명하겠습니다.

 

int[][] scores = new int[2][] 으로 열은 따로 설정되어있지 않습니다.

이같은 열을

2,3번째 줄과 같이 유동적으로 설정이 가능합니다. 이것을 가변배열이라고합니다.

1
2
3
4
int[][] scores = new int[2][];
        scores[0= new int[2];
        scores[1= new int[3];
        System.out.println(scores.length + " " + scores[0].length + " " + scores[1].length);

 

4번째 줄을 출력하면 다음과 같은 결과값이 나옵니다.

 

1
2 2 3

 

해당 관련 연습문제

2020/03/03 - [JAVA/JAVA 프로그래밍 응용] - 배열을 이용한키보드로 5개의 점수를 입력받아 출력하기

반응형

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

7 - 메소드  (0) 2020.03.04
6 - 클래스 ( class )  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03
3 - 반복문 for & while  (0) 2020.03.03
2 - 연산자  (0) 2020.03.03

+ Recent posts