프로그래밍 공부

2025.01.09 java 공부

3452 2025. 1. 9. 17:20

for 문 : 특정한 횟수동안 작업을 반복하고 싶을 때 사용하는 반복문이다.

 

for(초기화; 조건식; 증감식){

System.out.println("조건식이 참일 때 실행되는 부분");

}

 

for(int i = 0; i < price.length; i++) {

sum += price[i];

}

 

 

while 문 : 조건식을 검사하고 조건식이 참이면 반복하고 거짓이면 while문을 벗어난다.

 

while(조건식) {

// 실행되는 부분

}

 

while(answer == 0) {

System.out.println("프로그램을 종료합니다");

}

 

 

do~while 문 : while문의 변형으로, while문이 참/거짓을 검사 후 여부에 따라 반복문을 수행했다면, do~while문은 일단 한번은 문장들을 수행하고 그 다음부터 조건식을 검사하여 반복을 결정한다.

 

do{

//실행되는 부분

} while(조건식);

 

int i = 100;

do {

System.out.println("적어도 한번 실행되는 문장");

} while(i < 10);

 

 

break문, continue문 : break문은 반복을 멈추게 하고, continue문은 현재의 반복을 뛰어넘고 반복을 진행시킨다.

 

break는 반복문을 바로 멈추게 하고 그 다음코드를 실행하여 switch문이나 while문 등에 사용되고,

continue는 사용자가 값을 잘못 기입했을때 프로그램이 멈추는 대신에 건너 뛰고 재시도 하게 할수있게 해준다.

 

 

 

배열 : 같은 타입의 변수를 하나의 묶음으로 관리하여 여러개의 데이터를 저장하고 효율적으로 관리할 수 있다.

 

int fruit1, fruit2, fruit3, ... // 배열을 사용하지 않을때 하나하나 마다 변수를 선언

 

int[] fruits = new int[100]; // 배열을 사용할때 하나의 변수에 여러개를 저장

 

 

배열의 선언 : 변수 선언에서 타입 뒤에 대괄호[]를 추가로 붙인다.

 

int[] student;

String[] name;

 

 

배열을 선언하는 것은 생성된 배열을 다루기 위한 참조변수를 위한 공간을 확보한다.

 

실제 값들이 저장되는 공간은 배열을 생성해야 만들어지고, 배열을 생성하기 위해서 연산자 'new'를 쓰고 타입과 길이를 정해준다.

 

student = new int[15];

name = new String[3];

 

 

대부분의 경우 배열의 선언과 생성을 동시에 진행한다.

 

int[] student = new int[15];

String[] name = new String[3];

 

 

배열의 길이와 인덱스 : 배열의 데이터를 다룰 때는 인덱스를 사용하며, 인덱스랑 배열의 공간마다 붙여진 번호이다.

 

만약 a라는 배열에 순서대로 10, 11, 12라는 값을 대입하면 인덱스는 0부터 시작하기 때문에

 

a[0] = 10;

a[1] = 11;

a[2] = 12;의 값을 가지게 된다.

 

배열요소가 값을 가지면 다양한 작업이 가능하다.

 

a[0] = a[1]; // a[0]에 a[1]을 대입, a[0] = 11; a[1] = 11; a[2] = 12;

 

요소를 두 개 더하여 그 값을 다른 요소에 대입 할수도 있다.

 

a[2] = a[0] + a[1]; // a[2] = 22;

 

배열의 인덱스 값은 0부터 시작하고, 인덱스의 최대값은 배열의 길이보다 1 작다

 

따라서 a라는 배열이 n개의 요소를 가지고 있다면, a의 인덱스 범위는 a[0] ~ a[n-1]까지이다.

 

 

배열의 길이는 배열이름.length로 확인이 가능하다.

 

a.length는 현재 3이고, a의 인덱스값은 0, 1, 2이다.

 

 

배열의 요소를 문자열로 바꾸기 위해서 Array.toString(배열이름)을 사용한다.

System.out.println(Array.toString(a)); // [11, 11, 22]

 

 

다차원 배열 : 1차원이 아닌 2차원 이상의 배열을 다차원 배열이라고 한다. 주로 3차원 배열 이상은 잘 사용하지 않고, 주로 2차원 배열을 사용한다.

 

2차원 배열의 선언과 생성

 

int[][] student;

String[][] student;

 

여기서 첫번째 괄호는 행, 두번째 괄호는 열에 해당하며, 열과 행을 곱한만큼 배열요소를 가진다.

 

3차원 배열도 마찬가지로

 

int[][][] student;의 형태로 선언과 생성을 하고,

 

3차원 배열의 경우에는 첫 괄호는 면, 두번째는 행, 세번째는 열에 해당한다.

 

 

2차원 배열의 인덱스 : 2차원 배열은 행과 열로 구성되어 있으며, 인덱스는 마찬가지로 0부터 시작하기 때문에

 

int[][] student = new int[3][4];라면

 

student[0][0] 부터 student[2][3]까지 존재한다.

 

 

배열다루기 : 배열을 이용한 반복적인 작업이나 복사를 할 때 사용하는 방법이다.

 

배열의 복사 : 배열을 다른 배열로 복사할 때 반복문을 사용해서 복사할 수도 있지만, 자바에서 제공하는 System.arraycopy()를 사용하여 간단하게 복사할수있다.

 

System.arraycopy(복사 할 변수, 복사 시작할 인덱스, 덮어 쓸 변수, 덮어쓰기 시작할 인덱스, 덮어 쓸 인덱스 길이)

 

예를들어 System.arraycopy(a,0,b,2,3)이라고 가정하면, a 변수의 인덱스 0번부터의 값을 b변수의 2번인덱스 자리부터 3자리 덮어쓴다는 뜻이다.

 

int[] a = {1, 2, 3, 4, 5, 6}이고, int[] b = {0, 0, 0, 0, 0, 0, 0} 이라면, a의 0번 즉 1부터의 값을 b의 인덱스 2번자리부터 3칸 덮어쓴다.

 

따라서 b는 {0, 0, 1, 2, 3, 0}이 된다.

 

이러한 배열의 복사는 원본배열을 그대로 두면서 새로운 배열에 복사하여 작업을 수행할수 있다는 장점이 있다.

 

 

forEach : 배열을 순환할 때 기존의 반복문보다 편한 작업을 할 수 있도록 forEach를 제공한다.

 

for(배열의 타입 변수이름 : 배열이름) {

// 실행 구문

}

 

for(String i : a) {

System.out.println[i]; // 문자열 a를 배회하는 i를 이용해 a의 배열 값 출력

}

 

 

배열 Stream : 원본은 그대로 두고 소스만 변경하여 일회성으로 배열에 접근할수있다.

 

String[] a = {"Java", "Hello", "Programming"}; // 배열형

 

Arrays.Stream(a).forEach(i -> System.out.println(i)); // a를 스트림을 이용해 forEach 출력

 

 

List<String> fruits = Arrays.asList("Apple", "Banana", "Orange"); // 리스트형

fruits.stream()

       .filter(fruit -> fruit.startsWith("A")) // A로 시작하는 것만 필터링

       .forEach(System.out::println); // 스트림 영역을 출력, 결과값 : Apple

'프로그래밍 공부' 카테고리의 다른 글

2025.01.13 java 공부  (0) 2025.01.13
2025.01.10 java 공부  (0) 2025.01.10
2025.01.08 java 공부  (0) 2025.01.08
2025.01.07 java 공부  (0) 2025.01.07
2025.01.06 java 공부  (0) 2025.01.06