● 이차원 배열
- 배열 안에 요소로 배열이 있는 배열
● 이차원 배열의 선언
- 자료형[][] 배열명 = {{값, 값, ...}, {값, 값, ...}, {값, 값,...}, ...};
(ex) int[][] ar = {{1, 2}, {10, 20}, {100, 200}};
- 자료형[][] 배열명 = new 자료형[행][열];
● 향상된 for문(빠른 for문, foreach문)
- 1.5 버전 이후로 지원되는 문법이다.
- 변수에는 배열 속의 요소가 차례대로 담긴다.
for(배열요소자료형 변수명 : 배열명) {
....
}
※ foreach문 vs 일반for문
- 일반 for문 : 인덱스 번호가 필요한 경우 혹은 배열 안의 값을 수정해야 하는 경우에 사용하면 편리하다.
- foreach문 : 배열 안에 있는 값을 조회하기만 할 때 사용하면 편리하다.
실습(배열 복습)
import java.util.Scanner;
public class ArrayTest2 {
public static void main(String[] args) {
int num = 10;
int num2;
int[] ar = {10,20,30};
// 자료형[] 배열명 = new 자료형[크기];
int[] ar2 = new int[5]; // 5칸 짜리 배열이 만들어지고, 그 안에는 0으로 초기화된다
for (int i = 0; i < ar2.length; i++) {
System.out.println(ar2[i]);
}
double[] ar3 = new double[3];
for (int i = 0; i < ar3.length; i++) {
System.out.println(ar3[i]);
}
String[] ar4 = new String[5];
for (int i = 0; i < ar4.length; i++) {
System.out.println(ar4[i]);
}
char[] ar5 = new char[3];
for (int i = 0; i < ar5.length; i++) {
System.out.println(ar5[i]);
}
Scanner sc = new Scanner(System.in);
System.out.print("몇 개의 정수를 입력할 것입니까 >> ");
int count = sc.nextInt();
int[] numbers = new int[count];
}
}
![](https://blog.kakaocdn.net/dn/wCDNf/btrp94W0o83/otjWeKyTGk8hlQFuouKkBK/img.png)
실습(향상for문)
public class ArrayTest3 {
public static void main(String[] args) {
int[] ar = {10, 20, 30, 40, 50};
for(int i = 0; i < ar.length; i++) {
System.out.println(ar[i]);
}
for(int num : ar) {
System.out.println(num);
}
}
}
![](https://blog.kakaocdn.net/dn/UuRYT/btrp6mExvu3/tnwSrFxC2d0pyQRobs3f9K/img.png)
실습(이차원 배열)
public class NestedArray {
public static void main(String[] args) {
int[][] ar = {{1, 2}, {10, 20}, {100, 200}};
int[][] ar2 = new int[3][2];
System.out.println("ar2 길이 : " + ar2.length);
System.out.println("ar2[0] 길이 : " + ar2[0].length)
for(int[] temp : ar) {
for(int num : temp) {
System.out.println(num);
}
}
}
}
![](https://blog.kakaocdn.net/dn/bfsmPa/btrp3UWpsYk/hkKcs1MGSEuZdh2i1kyTmk/img.png)