728x90

배열 = 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것

배열을 쓰는 이유는 같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결한다

 

[ ] = 인덱스(index) 

배열의 위치를 나타내는 숫자( [ ] 사이에 숫자를 넣어주면 된다)

 

 

변수 선언과 생성

int[]student; //1. 배열 변수 선언
student = new int[5]; //2. 배열 생성
student = new int[]{90, 80, 70, 60, 50}; //3.배열 생성과 초기화
변수명.length = 배열의 길이를 제공 / 대입은 불가

 

예시1)

package test;
import java.util.Scanner;

public class studying {

	public static void main(String[] args) {

	int[] students;
 	students = new int[]{90, 80, 70, 60, 50}; //배열 생성과 초기화
    
    /*
    배열 생성 간략 버전, 배열 선언과 함께 사용시 new int[] 생략 가능
 	int[] students = {90, 80, 70, 60, 50};
    */
    
 	for (int i = 0; i < students.length; i++) {
	 System.out.println("학생" + (i + 1) + " 점수: " + students[i]);
 }
 
 }
}

 

ps) 아래와 같이 작성하면 오류발생

int[] students;
students = {90, 80, 70, 60, 50}; // 변수가 붙어있질않아서 처리 불가.

 

 

2차원 배열

int ary[][]= new int[i][j]; // i행 j열의 2차원배열 생성

 

행과 열 길이

	ary -> i.length
	ary -> j[i].length

 

예시1)

package test;
import java.util.Scanner;

public class studying {

	public static void main(String[] args) {
		
	
		 int ary[][] = new int[2][3];	// 2x3 2차원 배열, 초기화
		 int i = 1;
		 
		 // 순서대로 1씩 증가하는 값을 입력한다.
		 for (int i = 0; i < ary.length; i++) {
		 for (int j = 0; j < ary[i].length; j++) {
		 ary[i][j] = i++;
		 }
		 }
		 // 2차원 배열의 길이를 활용
		 for (int i = 0; i < ary.length; i++) {
		 for (int j = 0; j < ary[i].length; j++) {
		 System.out.print(ary[i][j] + " ");
		 }
		 System.out.println();
		 }
		 
		
	}
}

 

예시2) 문자열 출력

package test;
import java.util.Scanner;

public class studying {

	public static void main(String[] args) {
		
	String s[][]= {{"java"},
			{"c","c++"},
			{"html","pytion","css"}};

	for(int i=0;i<s.length;i++) {
	for(int j=0;j<s[i].length;j++) {
	System.out.println(s[i][j]);
}
}
	}
}

 

예시3) 배열과 반복문을 사용하여 프로그램 작성

package test;
import java.util.Scanner;

public class studying {

	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
		
		String ary[][] = {{"book","책"},
				  {"pen","펜"},
				  {"water","물"}}; //3행 2열
		
	for(int i=0;i<ary.length;i++) { //i=0,1,2
		System.out.println(ary[i][0]+"을 한글로");
		String str=sc.next();
		
		if(str.equals(ary[i][1])) {
			System.out.println("정답!");
		}
		else
			System.out.println(("오답!"));
	}

 

 

 

향상된 for문 = for-each문

for (변수 : 배열 또는 컬렉션) {
 // 배열 또는 컬렉션의 요소를 순회하면서 수행할 작업
}

 

비교

 

int ary[] = {1, 2, 3, 4, 5};

 

일반 for문

for(int i = 0; i < ary.length; ++i) {
 int a = ary[i];
 System.out.println(a);
}

 

for-each문

for (int a : ary) {
 System.out.println(a);
}

 

사용이 불가한 for-each문

//for-each문을 사용할 수 없는 경우, 증가하는 index 값 필요
 for(int i = 0; i < ary.length; ++i) {
 System.out.println("a" + i + "번의 결과는: " +ary[i]);
 }

 

 

728x90

'Language > JAVA' 카테고리의 다른 글

[JAVA] 메소드(Mathod)  (0) 2024.02.29
[JAVA] 배열 응용  (0) 2024.02.25
[JAVA] Scanner  (1) 2024.02.25
[JAVA] 형(type)변환 = Casting  (1) 2024.02.25
[JAVA] 반복문(for)  (1) 2024.02.25

+ Recent posts