1. 배열
많은량의 데이터를 쉽게 평균을 구할 수 있고 , 배열을 사용함으로써 한번에 많은 변수를 처리.
한 배열에 동일한 종류의 다수 데이터를 순서대로 저장한다.
예제 ) 1-1
int math = 20;
int korean = 30;
int science = 40;
int english = 50;
int society = 80;
int japanese = 50;
int sum = scores[0] + scores[1] +scores[2] +scores[3] +scores[4];
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum = sum + scores[i];
}
예제 1-1 과 같이 쓰는것은 하나의 카테고리 안에 다양하게 변수를 선언함으로써 , 비효율적 자료구조형이다.
예제 )1-2
int[] score = new int[5];
int count = score.length;
System.out.println(score[0]);*/
int[] score1 = new int[] {20,30,40,50,60};
int[] score2 = {20,30,40,50,60};
예제 1-2 와 같이 배열을쓰면 1-1의 예제처럼 데이터가 추가될때의 하나하나 변수를 선언할 필요가 없어진다 !
2. for문 / 일반for문 & 향상된for문
일반 for 문에서는 조건문 초기값 , 조건 , 카운터 증가 방법을 설정 했지만 , 향상된 for문에서는 Java만의 foreach문을 사용하여
효율성을 높일 수 있다.
foreach
for each 구문을 사용할 때 주의해야 할 점은 for each 구문으로 컬렉션 데이터를 처리할 때, 컬렉션은 수정할 수 없다는 점이다.
( 인덱스 : 객체 ) 객체의 크기만큼 반복 횟수를 정한다. 일반 for문보다 foreach문이 유연성이 있는편이다.
예제) 2-1
for (int value:moneyList2 ) {
System.out.println(value);
3. Garbage Collection (가비지 컬렉션)
프로그램 개발시, 유효하지 않은 메모리 가비지(Garbage)가 발생하고 , C언어 에서는 free()라는 함수를 통해 직접
메모리를 해제 시켜주지만, Java 에서는 개발자가 메모리를 직접 해제 해주는 일이 없다.
Java는 가비지 컬렉션 (GC, garbage collection) 이라는 장치가 더 이상 사용되지 않는 메모리를 정리 해 준다.
연습문제
// 4-1 practice exercise
/*
다음 조건에 맞는 각 배열을 준비하는 프로그램을 작성하시오. 값의 초기화는 필요 없음.
1. int형 값을 4개 담을 수 있는 배열 points
2. double 형 값을 5개 담을 수 있는 배열 weights
3. boolean 형 값을 3개 담을 수 있는 배열 answers
4. String형 값을 3개 담을 수 있는 배열 names
*/
int point[] = new int[4];
double weight[] = new double[5];
boolean answers[] = new boolean[3];
String[] names = new String[3];
System.out.println(answers);
// 4-2 practice exercise !
/*
다음 조건에 맞는 프로그램을 작성하시오.
1. 3개의 계좌 잔액 “121902”, “8302”, “55100” 이 담겨 있는 int 형 배열 moneyList 를 선언하시오
2. 그 배열의 요소를 1개씩 for 문으로 꺼내서 화면에 표시하시오
3. 같은 배열 요소를 foreach 문으로 1개씩 꺼내서 화면에 표시하시오
*/
int moneyList1[] = {121902};
int moneyList2[] = {8302};
int moneyList3[] = {55100};
//formal
for (int i = 0; i < moneyList1.length; i++) {
System.out.println(moneyList1[i]);
}
for (int i = 0; i < moneyList2.length; i++) {
System.out.println(moneyList2[i]);
}
for (int i = 0; i < moneyList3.length; i++) {
System.out.println(moneyList3[i]);
}
//향상된 for 문
for (int value:moneyList1 ) {
System.out.println(value);
}
for (int value:moneyList2 ) {
System.out.println(value);
}
for (int value:moneyList3 ) {
System.out.println(value);
//4-3 practice exercise !
/*
각 라인에서 발생하는 예외의 이름을 답하시오.
*/
int [] counts = null;
float[] heights = {171.3F , 175.0F};
System.out.println(counts[1]);
System.out.println(heights[2]);
// 값을 담고있는 수가 2개 이고 인덱스 값이 초과 또는 같기 때문에 에러발생!
잘못된 인덱스를 사용해서 배열에 접근했다는 것을 알려주기 위한 예외.
인덱스는 0보다 크거나 배열의 사이즈보다 작아야 한다.
- 에러 호출 4-3-1
System.out.println(counts[1]);
"counts"가 null값이기 때문에 배열에 저장할 수 없습니다. (Cannot load from int array because "counts" is null)
null이란 아무것도 없음을 의미합니다.(0또는 공백 : "")
모든 참조유형에 대한 기본 값은 null입니다.
null은 유효한 객체 인스턴스가 아니므로 할당 되는 메모리가 없습니다.
- 에러 호출 4-3-2
System.out.println(heights[2]);
// 값을 담고있는 수가 2개 이고 인덱스 값이 초과 또는 같기 때문에 에러발생!
잘못된 인덱스를 사용해서 배열에 접근했다는 것을 알려주기 위한 예외.
인덱스는 0보다 크거나 배열의 사이즈보다 작아야 한다.
// 4-4 practice exercise !
/*
다음 4개의 조건에 맞는 “숫자 맞추기 퀴즈" 프로그램을 작성 하시오.
1. 3개짜리 int형 배열 numbers를 준비하시오. 이 때 초기화는 각각 “3”, “4”, “9”로 합니다.
2. 화면에 “1자리의 숫자를 입력 해 주세요" 라고 표시합니다
3. 다음 코드를 사용해 키보드로부터 숫자를 입력 받아, 변수 input 에
대입합니다
4. input값이 3, 4, 9 중 하나와 같다면 “정답!” 이라고 표시합니다
*/
int[] numbers = {3,4,9};
System.out.println("한자리 숫자를 입력해 주세요 :");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
for (int num: numbers ) {
if(input == num){
System.out.println("정답!");
}else {
System.out.println("틀렸습니다!");
}
break;
}
728x90
'개발언어 > Java' 카테고리의 다른 글
| JAVA | 메소드 ( method ) 설명 및 예제 (0) | 2022.05.31 |
---|---|
| JAVA | 캡슐화 ( encapsulation ) 예제 (0) | 2022.05.31 |
| JAVA | 조건분기와 반복 (0) | 2022.05.29 |
| JAVA | 식과 연산자 / 산술 연산자 (0) | 2022.05.28 |
| JAVA | Java 의 특징 (0) | 2022.05.26 |