조건식이 flase가 될 때 까지 실행
1~5까지 출력 코드 예시
public class B_While {
public void method1(){
int i = 1;
while (i<=5) {
System.out.println(i);
i++;
}
int j = 1;
do {
System.out.println(j);
j++;
} while(j<=5);
do while은 1 회는 반드시 출력해야할 때 사용
5~1까지 코드 출력 예시
public void method2() {
// 5부터 1까지 출력
int i = 5;
while (i>=1) {
System.out.println(i);
i--;
}
int j = 5;
do {
System.out.println(j);
j--;
} while (j<=1);
}
switch = 메뉴를 만들때 많이 사용
모든 switch는 if 로 바꿀 수 있음
while - for 서로 호환 가능
for는 횟수가 정해져 있을 때 사용
while은 횟수가 정해져 있지 않을때 사용
return 밑에 코드가 있어도 return을 호출해 준 메서드로 되돌아감
break
break : 자신이 포함된 가장 가까운 반복문을 나가는 역할
if말고 for
배열의 특징 :
하나의 변수 안에 여러개의 값 저장 (같은 자료형끼리만 저장 가능)
보통 자료형 뒤에 대괄호 사용
int[ ] arr
할당 : Heap 메모리 영역에 공간이 생기는 것
▲int가 네개 들어갈 수 있도록 자리를 만들어 놓은 것
배열의 특징
new 연산자는 heap 메모리 영
추가 상식
//데이터 값(인자)를 안 넣는 메소드 length() , nextInt() 역에 공간을 만들고, 그 만든 공간에 대한 주소값까지 반환해줌
참조 자료형 = 실제 데이터를 가지고 있는 것이 아닌 주소값을 갖고 있는 자료형
(값을 실제로 가지고 있는게 아닌 인덱스를 참조하는 방식으로 값 처리)
비어있는 공간에 해당 자료값으로 초기화
ex) int 일 경우 0 으로 초기화 되어있음
public void method1() {
// int 자료형만 들어갈 수 있는 9개 공간을가진 배열 arr 생성
int[] arr = new int[9];
System.out.println(arr);
for ( int i = 0; i < arr.length; i++) { //배열의 길이(9)만큼 반복
System.out.println(arr[i]);
}
1) 하나의 자료형만 저장 가능
ex) 이름, 키, 몸무게 등 다다른 자료형을 동시에 불가
2) 한 번 지정한 배열의 크기를 바꿀수 없음
ex)
double[] dArr = new double[3];
dArr[0] = 78.5;
dArr[1] = 69.4;
dArr[2] = 98.1;
for(int i = 0; i < dArr.length; i++) {
System.out.println(dArr[i]);
}
System.out.println("====================");
dArr = new double [5]; // 한 번 지정한 크기는 변할 수 없다. 고정값.
for(int i = 0; i < dArr.length; i++) {
System.out.println(dArr[i]);
1) 얕은 복사
두 변수가 같은 곳을 참조하고 있다면 Heap에서 변경된 데이터도 arr1, arr2에서 같이 변경
2) 깊은 복사
arr1, arr2 다른 공간에 있기 때문에 데이터를 바꾼다고 해도 서로 영향을 받지 않음
arraycopy 배열 깊은 복사 메서드
System.arraycopy(src, srcPos, dest, destPos, length);
ex) System.arraycopy(originArr, 0, copyArr, 3, originArr.length);
src : 원본 배열
srcPos : 원본 배열에서 복사를 시작할 위치
dest : 복사 배열
destPos : 복사 배열에서 붙여넣기 시작할 위치
length : 복사 길이
추가 상식
: 데이터 값(인자)를 안 넣는 메소드 length() , nextInt()
데이터를 넣는 메소드 : equals("sdfds"), println("dfs"), charAt(0)
(이 때 괄호 안에 들어가는 데이터를 "인자"라고 함)
▲copyOf의 이해도
Arrays.copyOf
Arrays.copyOf() : 특정 배열의 원하는 길이만큼 새로운 배열로 복사하는 메소드 함수
새로운 배열 = Arrays.copyof(원본 배열, 원본 배열에서 복사하고 싶은 요소들의 길이); 식으로 사용됨
ex)
arr의 요소중 2개 불러오기 : 1 2
arr의 요소중 7개 불러오기 : 1 2 3 4 5 0 0
public class Solution {
private static int[] arr = {1, 2, 3, 4, 5};
public static void main(String[] args) {
int[] arr1 = Arrays.copyOf(arr, 2);
int[] arr2 = Arrays.copyOf(arr, 7);
System.out.print("arr의 요소중 2개 불러오기 : ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
System.out.println();
System.out.print("arr의 요소중 7개 불러오기 : ");
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]+" ");
}
}
} // 출처 : https://sno-machinelearning.tistory.com/18