/*==========================================
■■■ 배열(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
계속하려면 아무 키나 누르십시오 . . .
*/
'📚Study Note > JAVA' 카테고리의 다른 글
[ JAVA ] 정보은닉(private) , static 변수와 static 메소드 (0) | 2021.03.25 |
---|---|
[ JAVA ] 배열 Array ② 배열의 배열(2차원 배열) (0) | 2021.03.14 |
[ JAVA ] 클래스와 인스턴스 ③ 메소드 오버라이딩, 초기화블럭 (0) | 2021.03.14 |
[ JAVA ] 클래스와 인스턴스 ② 생성자 (Constructor) (0) | 2021.03.14 |
[ JAVA ] 클래스와 인스턴스 ① (0) | 2021.03.14 |