프로그래밍

[자바 기초] day03 : 배열(array) 본문

자바/자바 기초

[자바 기초] day03 : 배열(array)

시케 2023. 5. 4. 13:07
728x90
반응형

2023.05.04.목

배열

서로 관련된 데이터들을 한 공간에 저장하고 싶을때 사용한다

 

배열의 3요소

1) 관련된 요소여야 한다
2) 데이터들의 자료형이 일치해야 한다
3) 데이터들의 개수를 알고있어야 한다 (공간의 크기를 알아야 함)

 

배열 선언

//할당&초기화 없이 선언
int[] arr;
int arr[];

//선언과 동시에 배열 크기 할당
int[] arr = new int[5];
int arr[]

//기존 배열 초기화 할당
int[] arr;
arr = new int[5]	//5의 크기를 가진 초기값 0의 채워진 배열

//선언과 동시에 배열 크기 지정 및 값 초기화
int[] arr = {1,2,3,4,5}; 
int[] arr = new int[] {1,3,5,2,4};    
int[] odds = {1,3,5,7,9};  
String[] weeks = {"월","화","수","목","금","토","일"};

// 2차원 배열 선언
int[][] arr = new int[4][3];   //3의 크기의 배열을 4개 가질 수 있는 2차원 배열 할당  
int[][] arr9 = { {2, 5, 3}, {4, 4, 1}, {1, 7, 3}, {3, 4, 5}};
// 객체(Class) 배열 선언
Student[] StudentArr = new Student[5]; //초기값이 null이다

배열 예제

 

예제1)

public static void main(String[] args) {
	for(int a=0; a<3; a++) {//총 3줄이므로 3번 반복한다
			
		for(int i=0; i<2-a; i++) {//공백 찍기
			System.out.print(" ");
		}
		
		for(int b=0; b<a*2+1; b++) {//별 찍기 근데 홀수
			System.out.print("*");
			}
		System.out.println();
		}
}

예제2)

public static void main(String[] args) {
		
	int[] data = new int[4];
		
	data[0]=5;
	data[1]=2;
	data[2]=3;
	data[3]=100;
		
	for(int i=0; i<data.length; i++)
	{
		System.out.println("음료"+(i+1)+"은 "+data[i]+"개 있습니다.");
	}
}

 

예제3)

학생 6명의 점수가 순서대로 29, 99, 30, 22, 87, 57(순서대로 1번, 2번, ...) 일때 

다음을 구하여 출력하라

평균점수

평균을 넘긴 학생 수

6등의 번호, 짝수번째 학생들의 총점

평균을 못넘긴 학생들의 번호

public static void main(String[] args) {
		
	//배열 선언
	int[] stu = new int[6];
		
	//랜덤 점수 생성법
	Random rand = new Random();
		
	for(int i=0; i<stu.length;i++) {
		stu[i]=rand.nextInt(101);//0~100
		System.out.print(stu[i]+ " ");
	}
	System.out.println();

		학생들의 점수 데이터 입력
		stu[0]=29;
		stu[1]=99;
		stu[2]=30;
		stu[3]=22;
		stu[4]=87;
		stu[5]=57;
		
		
		//1. 평균
		int sum = 0;
		for(int i=0; i<stu.length; i++) {
			//전체 학생들의 점수 총합
			sum+=stu[i];
		}
		double avg =sum*1.0/stu.length;
		
		//2.평균 넘긴 학생 수
		//5. 평균 못 넘긴 학생들의 번호
		int num=0;
		for(int i=0; i<stu.length; i++) {
			if(stu[i]>avg) {
				num++;
			}
			else {
				System.out.println((i+1)+"번 학생은 평균을 넘기지 못했습니다.");
			}
		}
		System.out.println("평균을 넘긴 학생 수는 "+num+"명입니다.");
		
		//3. 6등의 번호(최소값 찾기)
		int min=stu[0];
		int minIndex=0;
		for(int i=0; i<stu.length; i++) {
			if(min>stu[i]) {
				min=stu[i];
				minIndex=i;
			}
		}
		System.out.println("6등의 번호는 "+(minIndex+1)+"번입니다.");
		
		//4.짝수번째 학생들의 총점
		int res=0;
		for(int i=0; i<stu.length; i++) {
			if(i%2!=0) {
				res+=stu[i];	
			}
		}
		System.out.println("짝수번째 학생들의 총점은 "+res+"점입니다.");
	}

 

 

 

 

 

 

728x90
반응형
Comments