JAVA_

JAVA#8 _ 배열 문제

Joyfullyever 2025. 1. 2. 19:31

#1 new 연산자

메모리 공간을 생성해주는 연산자.

"heap" 메모리 영역에 공간을 생성해주는 연산이며, 코드 new로 열어줘야지만 생성이 가능.

공간을 생성할 경우 자동으로 초기화. → Ex) double : 0.0 , String : null, int : 0

 

 

#2 사용자가 입력하는 값으로 배열의 길이 정하기


int arrlength; // 배열의 길이값 초기화
arrlength = sc.nextInt(); // 배열의 길이값 입력
int [] arr = new int[arrlength]; // 배열의 길이값 대입

위와 같은 방법으로, 스캐너를 통하여 사용자에게 먼저 값을 입력받은 후, 입력받은 값을 그대로 배열안에 대입.

 

#3 사용자가 입력하는 값을 배열 속에 저장


int [] datas = new int [3]; // 배열의 길이는 3
for(int i = 0 ; i < datas.length ; i++){ // 배열의 길이만큼 값을 입력 받기
	System.out.print("저장할 값 입력 >> ");
    	while(true){
        datas[i] = sc.nextInt(); //사용자에게 차례대로 값을 입력 받기
        if(datas[i]>0){ // 값이 0 이상이라면, 해당 주소에 값을 저장하고 while문 종료
        	break; // 종료 조건을 통해 while문이 종료된다면, 다시 for문의 처음으로 돌아가 배열의 길이만큼 반복
        }

i는 0부터 시작해 배열의 길이만큼 반복하게 되며,  값을 정상적으로 대입했다면, 앞에서 차례대로 값을 저장해 나가며 배열을 채워나감.

 

#4 사용자에게 배열의 길이,  홀수 값, 출력할 값을 모두 입력받기


Scanner sc = new Scanner(System.in); // 스캐너 선언
		
System.out.print("저장 공간의 크기를 설정하세요 >>> ");
int [] arr = new int [sc.nextInt()]; // 배열의 길이 입력
		
	for (int i = 0; i < arr.length; i++) { // 배열의 길이만큼 반복
		System.out.print((i+1) + "번 정수를 입력해주세요 >>> ");
		while(true) { // 배열에 알맞는 값이 들어갈 때 까지 반복
			arr[i] = sc.nextInt(); // 차례대로 배열 속의 값 입력 받기
			if(arr[i]%2 == 1) { // 입력값이 홀수라면 다음 배열값 입력 받기 위한 if문 종료조건
				break;
			}
			System.out.print("홀수만 다시 입력해주세요! >>> ");
			continue; // 짝수라면 재입력하기 위해 while문 처음으로 다시 이동
		} 
	}

배열 속에 값들을 저장하기 위해, 차례대로 반복이 가능한 for문을 사용하여 배열의 길이만큼 값을 입력

입력하는 과정에서 짝수를 입력하는 오류가 발생한다면, 다시 처음부터 입력 받음

홀수들을 처음 지정한 배열의 길이만큼 알맞게 입력하였다면 for문을 종료하고, 배열 속에 값들을 저장


System.out.print("출력하고 싶은 자리의 정수를 입력하세요 >>> "); // 원하는 자릿수 찾기
int want = sc.nextInt(); // 원하는 자릿수 저장
System.out.print("해당 자리의 정수는 : " + arr[(want-1)] + " 입니다.");


사용자의 입장에서 자릿수는 1부터 시작하지만, 프로그램의 입장에서는 0부터 시작.
따라서, 사용자가 원하는 자릿수에서 -1 을 해준다면, 프로그램상 알맞는 자리를 찾을 수 있다.