본문 바로가기

📚Study Note/JAVA

[ JAVA ] 배열 Array 의 선언, 초기화, 기본적인 사용

/*==========================================
 ■■■  배열(Array) ■■■
 - 배열의 선언과 초기화 
 ===========================================*/
/*
  ●  배열의 개요
		
		ⓐ  배열이란 크기와 성격이 같은 일련의 원소들이 모여 공동의 집합 구조를 갖는 자료의 집합체를 의미하는 것으로 
		    동질적인 성격을 가진 자료들에 대해 
			----------------------------------★
			개별적으로 자료형(Data type)을 부여하지 않고 하나의
		    이름을 가지고 일괄적으로 처리할 목적으로 사용된다.

		ⓑ  자바에서의 배열은 다음과 같은 순서에 의해 사용된다. 배열 선언 → 배열에 메모리 할당 → 배열 요소의 사용
 
		ⓒ  형식 및 구조
			 자료형 [] 변수명; → 자료형 변수명[] // 이렇게 쓰는 방식도 틀린 것은 아니다
			 변수명 = new 자료형[요소크기];
			 변수명[인덱스] = 값;

			 int[] arr;
			 arr = new int[3]; // 방번호 0,1,2 생성
			 arr[0] = 10;
			 arr[1] = 20;
			 arr[2] = 30;

*/


public class Test080
{
	public static void main(String[] args)
	{
		// ● 배열 선언
		int[] arr;
		// ● 메모리 할당
		arr = new int[10];


		 
		int[] arr2 = new int[10]; //→ 이처럼 선언과 동시에 메모리 할당도 가능하다.
		int[] arr3 = {1,2,3,4,5,6,7,8,9,10} ;//뿐만 아니라 선언/할당/초기화도 가능하다!!
									//자바 컴마(,)를 기준으로 방이 몇 개 필요한지 카운팅한다. 방에 담기까지 한다.
		//int arr3[] = {1,2,3,4,5,6,7,8,9,10}
		
		
		// ● 배열의 사용 → 배열 요소 사용 → 접근 → 인덱스를 통해
		arr[0]=1;
		arr[1]=2;
		arr[2]=3; // arr 의 경우 초기화되어있지 않은 나머지 7개의 방은 0으로 자동초기화 된다. int 형 배열이기 때문이다.


		int a=10;
		System.out.println(a);

		// 배열에 담긴 데이터(요소)의 값 출력
		System.out.println("arr : " + arr); //-==>> arr : [I@15db9742

		// 배열을 출력하기 위해 배열명을 일반 변수처럼 사용 하여 출력하는 구문으로 작성하게 되면 
		// 배열의 각방에 들어있는 데이터가 출력되는 것이 아니라 우리가 알아볼 수 없는 코드가 출력된다.
		
		System.out.println("arr[0] : " + arr[0]);//arr[0] : 1

		System.out.println("arr[1] :  " + arr[1]);//arr[1] :  2

		System.out.println("arr[2] : " + arr[2]);//arr[2] : 3

	

		//반복문을 활용하여 배열에 담긴 데이터 전체 출력
		for (int i=0; i<10; i++)
		{
			//System.out.printf("%d", arr[i]); //1230000000
			
			
			System.out.printf("arr 배열의 %d번째 방 : %d\n", i, arr[i]);
			/*
			arr 배열의 0번째 방 : 1
			arr 배열의 1번째 방 : 2
			arr 배열의 2번째 방 : 3
			arr 배열의 3번째 방 : 0
			arr 배열의 4번째 방 : 0
			arr 배열의 5번째 방 : 0
			arr 배열의 6번째 방 : 0
			arr 배열의 7번째 방 : 0
			arr 배열의 8번째 방 : 0
			arr 배열의 9번째 방 : 0*/
		}
		System.out.println();



		
	}
}

 

 

 

 

 

 

 

/*==========================================
	 ■■■  배열(Array) ■■■
 - 배열의 선언과 초기화 
 - 배열의 기본적인 활용
 ===========================================*/
// ● 실습문제
// 임의의 정수들이 들어있는 배열의 숫자 데이터들 중 짝수인 요소만 골라서 출력하고
// 3의 배수인 요소만 골라서 출력하는 프로그램을 구현한다.

// ※ 배열을 구성하는 임의의 정수
// → 4 7 9 1 3 2 5 6 8

// 실행 예)
// 배열 요소 전체 출력
// 4 7 9 1 3 2 5 6 8
// 짝수 선택적 출력
// 4 2 6 8 
// 3의 배수 선택적 출력
// 9 3 6 
// 계속하려면 아무 키나...



public class Test081
{
	public static void main(String[] args)
	{

		// ▶배열을 만든다 ( 선언, 메모리할당, 초기화 동시에 진행)
		/*
		int [] arr = new int[9];
		int[0] = 4;
		int[1] = 7;
		int[2] = 9;
		int[3] = 1;
		int[4] = 3;
		int[5] = 2;
		int[6] = 5;
		int[7] = 6;
		int[8] = 8;*/

		int[] arr = {4,7,9,1,3,2,5,6,8};

		
		
		
		//▶전체 출력해본다


		System.out.println("◈배열 요소 전체 출력");
		
		for (int i=0; i<9; i++)
		{
			System.out.printf("%d  ", arr[i]);
		}

		System.out.println("\n"); //두 줄 개행 보기편하게
		
		
		
		//▶짝수를 출력한다

		System.out.println("◈짝수 선택적 출력");
		
		
		for (int i=0; i<9; i++) //일반적으로 i=0으로 시작하고 i<9 방의 개수보다 작다 로 한다.
		{
			if (arr[i] %2==0) 
			{
				System.out.printf("%d  ", arr[i]);
			}
			else
				continue; //짝수가 아닐 경우 무시하고 계속 다음 반복을 진행한다.
		}

		System.out.println();
		System.out.println();




		//▶3의 배수 출력한다.
		System.out.println("◈3의 배수 선택적 출력");

				
		for (int i=0; i<arr.length; i++)
		{
			if (arr[i] %3==0)
			{
				System.out.printf("%d  ", arr[i]);
			}
			else
				continue;
		}
		
		System.out.println(); // 두 줄 개행 보기 편하게
		System.out.println();

		// ※ 배열 arr의 길이 (방의 갯수) 확인
		// arr.length (arr배열의 방이 몇개다 라는 배열의 '속성'이다)

		System.out.println("배열 arr의 길이 : " + arr.length); //-==>> 배열 arr의 길이 : 9
	}


}
/*
◈배열 요소 전체 출력
4  7  9  1  3  2  5  6  8

◈짝수 선택적 출력
4  2  6  8

◈3의 배수 선택적 출력
9  3  6

계속하려면 아무 키나 누르십시오 . . .*/

 

 

 

 

 

 

 

/*==========================================
 ■■■  배열(Array) ■■■
 - 배열의 선언과 초기화 
 - 배열의 기본적인 활용
 ===========================================*/

// ● 실습 문제
// char 자료형의 배열을 만들어 알파벳 대문자를 채우고 채워진 배열의 전체 요소를 출력하는 프로그램을 구현한다.

// 실행 예)
// A B C D E F G H I J ..... W X Y Z 
// 계속하려면 아무 키나...

public class Test082
{
	public static void main(String[] args)
	{
		//배열 선언 메모리할당 초기화

		//char[] arrCh = {'A', 'B','C'}; //65부터 90까지

		char[] arr3 = new char[26];
			
		for (int i=0, ch=65; i<arr3.length; i++, ch++)
		{
			arr3[i]=(char)ch;

		}

		// 배열 요소 전체 출력
		for (int i=0; i<arr3.length; i++)
		{
			System.out.print(arr3[i] + "  ");
			
		}


	}
}

 

 

 

 

 

 

 

/*==========================================
 ■■■  배열(Array) ■■■
 - 배열의 선언과 초기화 
 - 배열의 기본적인 활용
 ===========================================*/

 // ○ 실습 문제
 // 사용자로부터 인원 수를 입력받고 이렇게 입력받은 인원 수 만큼의 
 // 학생 이름과 전화번호를 입력받아 입력받은 내용을 
 // 전체 출력하는 프로그램을 구현한다. 단, 배열을 활용하여 처리할 수  있도록 한다.

 // 실행 예)
 // 입력 처리할 학생 수 입력(명, 1~10) : 3
 // 이름 전화번호 입력[1](공백 구분) : 봉봉이 010-1111-1111
 // 이름 전화번호 입력[2](공백 구분) : 징징이 010-0000-0000
 // 이름 전화번호 입력[3](공백 구분) : 댕댕이 010-9999-9999

 // --------------------
 // 전체 학생 수 : 3명
 // --------------------
 // 이름    전화번호 

 //봉봉이 010-1111-1111
 //징징이 010-0000-0000
 //댕댕이 010-9999-9999

 // --------------------
 //계속하려면 아무 키나...

 // 이름과 전화번호 넣을 배열을 따로 만들기!


import java.util.Scanner;
import java.io.IOException;

public class Test083
{
	public static void main(String[] args) throws IOException

	{
		
		//입력할 학생 수  
		int a; 
	
		
		Scanner sc = new Scanner(System.in);

		//입력처리할 학생수를 스캐너로 입력받는다	

		
		do
		{
			System.out.print("입력 처리할 학생 수 입력(명, 1~10) : ");
			a = sc.nextInt();
		}
		while (a<0 || a>10);

		//System.out.println(a); → a에 원하던 숫자가 들어있는지 확인해보는 출력구문

		
		
		// 받은 학생 이름을 넣을 String 배열을 만든다 

		String[] names = new String[a];
		
 
		
		
		// 받은 학생 번호를 넣을 String 배열을 만든다 
		// (★주의 해야 할 점 : 만약 하이픈 없이 01000001111 이렇게 받는다고해도 
		// 정수로 받으면 앞에 0이 없어져버리니 학번 번호 이런것들은 String으로 받도록!)
		String[] phones = new String[a];
		
		
		
		
		// 학생 수만큼 입력을 받는다 그러고 이름은 name 배열에, 전화번호는 phone배열에 넣는다.
		for (int i=0; i<a; i++)
		{
			System.out.printf("이름 전화번호 입력[ %d ](공백 구분) : ", i+1);	
			
			names[i] = sc.next();
			phones[i]= sc.next();

			
		}
		// 출력한다

		System.out.println("--------------------");
		System.out.printf("전체 학생 수 : %d명\n",a);
		System.out.println("--------------------");

		System.out.println("이름    전화번호 ");
		System.out.println();


		for (int i=0; i<names.length; i++)
			System.out.println(names[i] + "  " + phones[i]);
		

		System.out.println();
		System.out.println("--------------------");



/*
입력 처리할 학생 수 입력(명, 1~10) : 3
이름 전화번호 입력[ 1 ](공백 구분) : 댕댕 010-1111-1111
이름 전화번호 입력[ 2 ](공백 구분) : 징징 010-2222-2222
이름 전화번호 입력[ 3 ](공백 구분) : 진주 010-3333-3333
--------------------
전체 학생 수 : 3명
--------------------
이름    전화번호

댕댕  010-1111-1111
징징  010-2222-2222
진주  010-3333-3333

--------------------
계속하려면 아무 키나 누르십시오 . . .*/		

	}
}

 

 

 

 

 

/*==========================================
 ■■■  배열(Array) ■■■
 - 배열의 선언과 초기화 
 - 배열의 기본적인 활용
 ===========================================*/

 // ● 과제
 // 사용자로부터 입력받은 임의의 정수를 임의의 갯수만큼 입력받아 입력받은 수 중에서
 // 가장 큰 수를 출력하는 프로그램을 구현한다.
 // 단, 배열을 활용하여 처리할 수 있도록 한다.

 // 실행 예)
 // 입력할 데이터의 갯수   :  10
 // 데이터 입력(공백 구분) :  47 92 73 11 2 61 23 62 88 15
 // >> 가장 큰 수 → 92 
 // 계속하려면 아무 키나...

 /*주의 입력받는 과정에서는 배열을 구성만 하고 크기를 비교하지는 않는다
따로 큰 수를 뽑아내는 컨트롤을 따로 해야 함
문제가 무슨말인지모르겠다 없습니까? 넘어가도돼요?네에에*/

import java.util.Scanner;


public class Test084
{
	public static void main(String[] args)
	{
		int c;

		Scanner sc = new Scanner(System.in);
		
		
		//입력할 데이터의 개수를 스캐너로 입력받는다
		System.out.print("입력할 데이터의 갯수   : ");
		c = sc.nextInt();
		//System.out.println(c);
		
		//배열을 구성한다.
		int[] arr = new int[c];

		// 스캐너로 공백 구분해서 데이터를 입력받아 배열에 넣는다.
		System.out.print("데이터 입력(공백 구분) :  ");
		for (int i=0; i<arr.length; i++)
		{
			arr[i] =sc.nextInt();
		}
		
		//System.out.println(arr[0]);
		

		// 크기를 비교해서 가장 큰 수를 찾아낸다
		int max;
	

		max=arr[0];

		for (int i=1; i<arr.length; i++)
		{
			if (max<arr[i])
				max = arr[i];		
		}

		// 가장 큰 수를 출력한다. 끝!
		System.out.printf(">> 가장 큰 수 → %d\n", max);

		
	}
}

/*
입력할 데이터의 갯수   : 10
데이터 입력(공백 구분) :  47 92 73 11 2 61 23 62 88 15
>> 가장 큰 수 → 92
계속하려면 아무 키나 누르십시오 . . .
*/