배열 기초
- 같은 타입의 데이터들이 연속적으로 저장된다.
- 배열의 생성은 배열에 대한 레퍼런스 변수를 생성하고 배열을 생성한다.
- 배열의 인덱스는 정수만 가능하다.
래퍼런스 변수 생성
int intArray[];
배열 생성
intArray = new int[5];
예시
양수 5개를 입력받아 배열에 저장하고, 제일 큰 수를 출력하는 프로그램을 작성하라.
import java.util.Scanner;
public class ArrayAccess {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int intArray[] = new int[5];
int max = 0;
System.out.println("양수 5개를 입력하세요.");
for(int i=0; i<5; i++) {
intArray[i] = scanner.nextInt();
if(intArray[i] > max)
max = intArray[i];
}
System.out.print("가장 큰 수는"+max + "입니다.");
scanner.close();
}
}
실행결과
양수 5개를 입력하세요.
39
28
17
3
9
가장 큰 수는39입니다.
length 필드
- 자바에서는 배열을 객체로 다룬다. 객체에는 배열의 저장 공간의 함께 배열의 크기 값을 가진 legnth 필드가 존재한다.
- length 필드가 있기에 배열의 크기를 따로 관리할 필요가 없다.
예시
배열의 legnth 필드를 이용하여 배열 크기만큼 정수를 입력받고 평균을 구하는 프로그램을 작성하라.
import java.util.Scanner;
public class ArrayLength {
public static void main(String[] args) {
int intArray[] = new int [5];
int sum = 0;
Scanner scanner = new Scanner(System.in);
System.out.print(intArray.length+"개의 정수를 입력하세요>> ");
for(int i=0; i<intArray.length; i++) {
intArray[i] = scanner.nextInt();
}
for(int i=0; i<intArray.length; i++) {
sum += intArray[i];
}
System.out.print("평균은 "+ (double)sum/intArray.length);
scanner.close();
}
}
실행결과
5개의 정수를 입력하세요>> 3 6 2 67 3 1
평균은 16.2
for-each 문
- 배열 또는 나열의 크기만큼 루프를 돌면서 각 원소에 순차적으로 접근할 때 유용하게 만든 변형 for 문이 for-each 문이다.
for (변수 : 배열래퍼런스) {
...반복작업문...
}
배열 n에 들어 있는 모든 정수를 더하는 코드를 for-each 문으로 작성하면 다음과 같다.
int [] n = {1,2,3,4,5};
int sum = 0;
for (int k : n){ // n.length만 반복, k는 n[0], ..., n[4]로 번갈아 반복
sum += k;
}
위 아래 코드는 서로 같다.
for (int i=0; i<n.length; i++){
int k=n[i];
sum+=k;
예시
for-each 문을 활용하는 사례를 보자.
public class foreachEx {
enum Week {월,화,수,목,금,토,일}
public static void main(String[] args) {
int [] n = {1,2,3,4,5};
String names[] = {"사과", "배", "바나나", "체리", "딸기", "포도"};
int sum = 0;
for (int k:n) {
System.out.print(k+ " ");
sum += k;
}
System.out.println("합은" +sum);
for(String s: names) {
System.out.print(s + " ");
}
System.out.println();
for(Week day : Week.values()) {
System.out.print(day + "요일");
}
System.out.println();
}
}
실행결과
1 2 3 4 5 합은15
사과 배 바나나 체리 딸기 포도
월요일화요일수요일목요일금요일토요일일요일
배열에 대한 개념내용 보충이 필요하다. for-each 문은 변형된 문법이기에 확실히 아는 것이 중요하다.
'Java > 기본 프로그래밍' 카테고리의 다른 글
[JAVA] 예외 처리 ( try catch finally 문 ) (0) | 2024.01.31 |
---|---|
[JAVA] 다차원 배열 ( 2차원 배열, 비정방형 배열 ) (1) | 2024.01.30 |
[JAVA] 반복문 ( 중첩반복문, continue 문, break 문 ) (1) | 2024.01.26 |
[JAVA] 반복문 ( for 문, while 문, do-while 문 ) (0) | 2024.01.25 |
[JAVA] 조건문 ( if 문, if-else 문, switch 문 ) (1) | 2024.01.24 |