일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- DBMS
- Java 추상 메서드
- Express
- 오라클
- 데이터베이스
- 자바 스트링클래스
- 자바 Wrapper클래스
- java super( )
- database
- 자바 추상메서드
- Java문자열 클래스
- 자바 Random클래스
- oracle
- 코딩
- 자바 String클래스
- 자바 제어문
- db
- Java 내부 클래스
- Java업캐스팅
- 자바 내부 클래스
- Java thorw
- Java다운캐스팅
- 자바 예제
- nodejs
- 자바 try-catch
- dbeaver
- 자바 문자열 클래스
- Java객체배열
- Java try-catch
- Java추상클래스
- Today
- Total
코딩이란 무엇일까
[Java/자바]배열(3) 다차원 배열 본문
안녕하세요 오늘은 자바에서 배열중에 다차원 배열에 대해 알아보도록 하겠습니다.
그냥 배열도 어려운데 다차원 배열이라니..
사실 다차원 배열은 이름만 좀 어려워 보이지 생각보다 쉬운 개념입니다.ㅎㅎ
다차원 배열이란?
저희가 지금까지 본 배열은 1차원 배열입니다. 이와 달리 값들이 행과 열로서 구성된 배열을 2차원 배열이라고 합니다.
배열 안에 또 다른 배열이 있는 것이지요!!
2차원 배열의 선언
자료형 [ ] [ ] 배열명;
일차원 배열에 [ ] 하나만 더 추가됐다고 생각하면 좋습니다.
2차원 배열의 생성
배열명 = new 자료형 [크기][크기]
ex) int arr [ ] [ ] = new int [3] [4];
arr [3][4]라는 이차원 배열은 이런 그림으로 이루어져 있다고 보시면 쉽습니다.
2차원 배열의 예시
public class Array2 {
public static void main(String[] args) {
//5개의 정수형 변수를 묶는 1차원 배열 x2 = 2차원 배열
//1차원 배열만 사용했을 경우
int arr1[]= new int[5];
int arr2[]= new int[5];
//자료형 배열명[] []=new int[묶음의 갯수][각 묶음의 요소 갯수]
int arr[][]=new int[2][5];
}
}
2차원 배열을 사용 안 했을 경우 arr1과 arr2처럼 배열을 두 개 만들어 주어야 합니다.
하지만 2차원 배열을 사용하면 한 줄에 두 개의 배열을 만들어 주어 코드 가독성도 높아지고 배열의 값을 관리하 좀 더 수월해지는 것이지요.
따라서 int [2][5]라는 이차원 배열은 2열 5행인 구조를 갖고 있네요.
2차원 배열의 초기화
자료형 배열명 [ ] [ ] ={
{값 1, 값 2, 값 3…}, //1번째 배열
{값 4, 값 5, 값 6…}. //2번째 배열
{값 7, 값 8, 값 9…}, //3번째 배열
};
{ }는 열 안에 있는 값은 행을 뜻하겠네요.
2차원 배열 예시_2
<2차원 배열의 모든 값을 출력하기>
4명의 학생의 점수 3개를 입력받아 scores라는 2차원 배열에 저장하여 출력하는 코드를 작성해 봅시다.
package day05_Array2;
import java.util.Scanner;
public class Array2_Ex {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int scores[][]= new int[4][3];
String subject[]= {"국어","영어","수학"};
for(int j=0;j<4;j++){
System.out.println(j+1+"번학생 점수--");
for(int i=0;i<3;i++) {
System.out.println(subject[i]+":");
scores[j][i]=sc.nextInt();
}
}
//2차원 배열에 저장된 값을 출력
for(int i=0;i<3;i++) {
System.out.print("\\t"+subject[i]);
}
System.out.println();
for(int j=0;j<4;j++) {
System.out.println();
System.out.print(j+1+"번 \\t");
for(int i=0;i<3;i++) {
System.out.print(scores[j][i]);
System.out.print("\\t");
}
}
}
}
우선 2차원 배열을 생성한 뒤 값을 입력받는 부분부터 보도록 하죠
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int scores[][]= new int[4][3];
String subject[]= {"국어","영어","수학"};
for(int j=0;j<4;j++){
System.out.println(j+1+"번학생 점수--");
for(int i=0;i<3;i++) {
System.out.println(subject[i]+":");
scores[j][i]=sc.nextInt();
}
}
int scores [][]= new int [4][3]; =>4명의 학생에 3개의 점수를 넣어줄 2차원 배열을 만들어 줍니다.
String subject []= {"국어", "영어", "수학"}; => 국어, 영어, 수학이란 문자열은 for문으로 증가할 수 없기에 문자열을 담아주는 문자열 배열도 만들어 줍니다.
for(int j=0;j <4;j++){ System.out.println(j+1+"번 학생 점수--");
for(int i=0;i <3;i++) { System.out.println(subject [i]+":"); scores [ j ] [ i ]=sc.nextInt(); }
}
= > n번 학생의 점수를 출력하기 위해 for문을 돌린 뒤 [i][j] i 번째 학생의 점수를 출력하기위해 이중 for문을 돌려줍니다.
2차원 배열에 저장된 값을 출력
for(int i=0;i<3;i++) {
System.out.print("\t"+subject[i]);
}
System.out.println();
for(int j=0;j<4;j++) {
System.out.println();
System.out.print(j+1+"번 \t");
for(int i=0;i<3;i++) {
System.out.print(scores[j][i]);
System.out.print("\t");
}
}
for(int i=0;i <3;i++) { System.out.print("\t"+subject [i]); } => for문을 사용해서 과목을 출력해 줍니다.
for(int j=0;j <4;j++) {
System.out.println();
System.out.print(j+1+"번 \t");
for(int i=0;i <3;i++) {
System.out.print(scores [j][i]);
System.out.print("\t");
}
}
=> 출력 또한 입력과 마찬가지로 이중 for문을 사용하여 출력해 줍니다.
출력 결과
짜잔 이쁘게 꾸며서 결과를 출력해봤습니다 ㅎㅎ
이상으로 다차원(2차원) 배열에 대해 알아보았습니다.
글 읽어주셔서 감사합니다~
'Java' 카테고리의 다른 글
[Java/자바] 배열(5) 카페 프로그램 예제 풀어보기 (1) | 2022.09.25 |
---|---|
[Java/자바]배열(4) 배열의 복제 및 foreach문 (0) | 2022.09.24 |
[Java/자바] 배열(2) 예제(로또 번호 생성기) (1) | 2022.09.23 |
[Java/자바] 배열(1) (Array) 선언 및 사용방법 (2) | 2022.09.23 |
[Java/자바]제어문(5) -break, continue문 (0) | 2022.09.21 |