백엔드

[java] 배열 요소에 값이 있는 것만 추출하기

음그냥 2025. 3. 3. 06:17
728x90
반응형

배열 선언 및 초기화 규칙

int[] arr = new int[]{1,2,3,4,5}; // O 선언 및 명시적인 초기화
int[] arr = new int[5]{1,2,3,4,5}; // X 오류!!!


int[] arr = {1,2,3,4,5}; // O new int[] 생략, 컴파일러가 인식하고 자동으로 new int[]추가해줌


int[] arr;
arr =  {1,2,3,4,5};  // X 오류!!! 선언후에 초기화시 반드시 new int[]추가해줘야함 컴파일러가 인식못함

int[] arr;
arr = new int[]{1,2,3,4,5};  // O

 

  • 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(데이타)가 없는 경우도 있음
  • 배열의 length 속성은 배열의 개수를 반환해주기 때문에 요소의 개수와는 다름
  • length를 활용하여 오류가 나는 경우

 

< 전 >

double[] dArr = new double[5];
		
dArr[0] = 1.1;  
dArr[1] = 2.1; 
dArr[2] = 3.1; 
		
double mtotal = 1;
for(int i = 0; i< dArr.length; i++) {
	mtotal *= dArr[i];
}
		
System.out.println(mtotal);

 

 

728x90

 

< 후 >

(1) 배열요소에 값이 있는만큼 count갯수로 카운트

 

double[] dArr = new double[5];
int count = 0;
dArr[0] = 1.1; count++; 
dArr[1] = 2.1; count++;
dArr[2] = 3.1; count++;
		
double mtotal = 1;
for(int i = 0; i< count; i++) {
	mtotal *= dArr[i];
}
		
System.out.println(mtotal);

 

(2) null체크해서 요소에 값있는것만 계산

double[] dArr = new double[5];

dArr[0] = 1.1;
dArr[1] = 2.1;
dArr[2] = 3.1;
		
double mtotal = 1;
for(int i = 0; i< dArr.length; i++) {
	if(dArr[i] == 0.0) {
           continue;
        }
	mtotal *= dArr[i];
}
		
System.out.println(mtotal);

 

 

728x90
반응형