지우의 우당탕탕 개발일지

Java 배열(3) 배열의 활용 (예제들) 본문

언어/Java

Java 배열(3) 배열의 활용 (예제들)

erase-jeong 2024. 9. 11. 18:59

 

 

[ 예제 5 - 2  ] 총합과 평균

public class Ex5_2 {
    public static void main(String[] args){
        int sum=0; //총점을 저장하기 위한 변수
        float average=0f; //평균을 저장하기 위한 변수

        int[] score={100,88,100,100,90};

        //반복문을 이용해서 배열에 저장되어 있는 값들을 모두 더한다.
        for(int i=0;i<score.length;i++){
            sum+=score[i];
        }
        average=sum/(float)score.length; //계산결과를 float타입으로 얻으려 형변환

        System.out.println("총합 : "+sum);
        System.out.println("평균 : "+average);
    }
}

 

478/5  -> 95
478 / (float)5 -> 478 / 5.0f -> 478.0f/5.0f -> 95.6f
                          int    f                     

 

 


 

[ 예제 5 - 3 ] 최대값과 최소값 : 배열의 요소 중에서 제일 큰 값과 제일 작은 값을 찾는다

public class Ex5_3 {
    public static void main(String[] args){
        int[] score={79,88,91,33,100,55,95};

        int max=score[0]; //배열의 첫 번째 값으로 최대값을 초기화한다.
        int min=score[0]; //배열의 첫 번째 값으로 최소값을 초기화한다.

        for(int i=1;i<score.length;i++){ //배열의 두 번째 요소부터 읽기 위해서 변수 i의 값을 1로 초기화
            if(score[i]>max){
                max=score[i];
            }
            else if(score[i]<min) {
                min = score[i];
            }
        } //end of for

        System.out.println("최대값 : "+max);
        System.out.println("최소값 : "+min);
    }
}

 


 

[예제 5 - 4 ] 섞기(shuffle) 배열의 요소의 순서를 반복해서 바꾼다. (숫자 섞기, 로또번호 생성)

import java.util.Arrays;

public class Ex5_4 {
    public static void main(String[] args){
        int[] numArr={0,1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.toString(numArr));

        for(int i=0;i<100;i++){
            int n=(int)(Math.random()*10); //0~9 중의 한 값을 임의로 얻는다.

            //numArr[0] 과 numArr[n]의 값을 서로 바꾼다.
            int tmp=numArr[0];
            numArr[0]=numArr[n];
            numArr[n]=tmp;
        }

        System.out.println(Arrays.toString(numArr));
    }
}

 

 

 

 

  • for 문 두번으로 돌린 경우
import java.util.Arrays;

public class Ex5_4 {
    public static void main(String[] args){
        int[] numArr={0,1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.toString(numArr));

        for(int i=0;i<2;i++){
            int n=(int)(Math.random()*10); //0~9 중의 한 값을 임의로 얻는다.

            //numArr[0] 과 numArr[n]의 값을 서로 바꾼다.
            int tmp=numArr[0];
            numArr[0]=numArr[n];
            numArr[n]=tmp;
        }

        System.out.println(Arrays.toString(numArr));
    }
}

 

 

  • length로 출력한 경우
import java.util.Arrays;

public class Ex5_4 {
    public static void main(String[] args){
        int[] numArr={0,1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.toString(numArr));

        for(int i=0;i<numArr.length;i++){
            int n=(int)(Math.random()*10); //0~9 중의 한 값을 임의로 얻는다.

            //numArr[0] 과 numArr[n]의 값을 서로 바꾼다.
            int tmp=numArr[i];
            numArr[i]=numArr[n];
            numArr[n]=tmp;
            System.out.println(Arrays.toString(numArr));
        }

        System.out.println(Arrays.toString(numArr));
    }
}

 


 

[예제 5 - 5 ] 섞기(shuffle) 배열의 요소의 순서를 반복해서 바꾼다. (로또번호 생성)

public class Ex5_5 {
    public static void main(String[] args){
        int[] ball=new int[45]; //45개의 정수값을 지정

        //배열의 각 요소에 1~45의 값을 저장한다.
        for(int i=0;i<ball.length;i++){
            ball[i]=i+1; //ball[0]에 1이 저장된다.
        }

        int tmp=0; //두 값을 바꾸는데 사용할 임시변수
        int j=0; //임의의 값을 얻어서 저장할 변수

        //배열의 i번째 요소와 임의의 요소에 저장된 값을 서로 바꾸서
        //0번째부터 5번쨰 요소까지 모두 6개만 바꾼다.
        for(int i=0;i<6 ;i++){
            j=(int)(Math.random()*45); //0~44범위
            tmp=ball[i];
            ball[i]=ball[j];
            ball[j]=tmp;
            System.out.println("ball["+i+"]="+ball[i]);
        }
    }
}