BE/Java [Servlet , Spring]

자바 배열(array) -배열 구조 및 합계 구하기

시녜's 2023. 1. 6. 17:47

▶배열 : 변수에 여러 개의 데이터를 한 번에 저장

데이터 타입[  ] 변수명 = {데이터, 데이터, 데이터...}

int[ ] a = {1, 2, 3, 4, 5, 6, 7};

* [ ]는 배열 선언

* 배열 변수는 참조 변수임

* 데이터는 모두 같은 타입이 들어와야 한다. < - > ArrayList는 타입 상관없이 데이터를 넣을 수 있다.

* 데이터를 받아올 때는 변수명[인덱스번호]

*인덱스의 번호는 0부터 시작한다. 위의 배열은 0 ~ 6까지

*배열 길이 가져올 때 변수.length

예) int b =  a.length;

// 배열에 넣은 데이터의 합 구하기
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
		int sum = 0;
		int b = a.length;
		for(int i = 0; i < b ; i++){ 
			System.out.println(a[i]);
			sum = sum+a[i];
		}
		System.out.println("합계="+sum);
		
		double avg = (float)sum/b;
		System.out.println("평균="+avg);

- a [0] 에는 배열의 첫 번째에 위치한 1이 a [1]에는 2가 들어간다. 

- a [num] : 대괄호 안에는 배열의 순번(인덱스)가 들어감

*배열 생성하기

String[ ] name = new String [100]; 

- 문자 타입의 name 변수에 크기가 100인 새로운 배열을 생성한다.

- 앞의 String은 클래스(타입), name은 변수명, new는 생성을 의미 , 뒤의 String은 생성자 [배열크기]

- 100개의 배열을 생성해 name이라는 변수에 담는다.

//배열에 입력받아 넣은 데이터의 합 구하기
Scanner s = new Scanner(System.in);
		
		System.out.print("배열크기>");
		int size = s.nextInt(); 
		
		int[] a = new int[size];  
		
		int sum = 0;
		for(int i =0 ; i < a.length ; i++ ) { 
			a[i] = s.nextInt();
			sum = sum + a[i];
		}	
		
		System.out.println("입력완료");
		
		System.out.println("합계="+sum);
		
		float avg = (float)sum/a.length;
		System.out.println("평균="+avg);

1) size 변수에 입력받을 숫자를 받아와 해당 사이즈의  a배열을 생성

**size는 배열의 크기이므로 배열의 인덱스는 (size - 1)번째까지 있다.

**int[ ] a = new int[ size ]; 아래에 size를 선언하면 오류가 난다 - > 사용되기 전에 선언해줘야 함

2) 합계를 구하기 위해 초기화값 0으로 설정한  int 타입의 sum 변수 생성

3) 배열의 합계를 구하기 위해 for문을 사용한다. 

4) for문  - 지정한 길이(i)만큼의 데이터를 next.int로 입력받아 a[ i ]번째까지 각각 넣어주고 sum으로 합계를 구한다.

5) avg(평균)는 구한 sum값을 해당 배열의 길이로 나누어 구해주면 된다.

6) int로 선언된 sum의 값을 실수로 표현하기 위해 형변환 해준다. 앞에 (float) 입력