2022년 09월 28일 자바 7강. 내용: 탈출문(break,continue) / 배열과 탐색,정렬법
<오늘의 수업 내용>
# 탈출문
-자바에서 무한루프문 만들기.
while(true) -> 보통 무한루프는 자바에서 while문을 많이 사용.
for( ; ;) -> for문에서 이게 무한루프이지만 가독성이 안 좋아서 사용 잘 안함.
-탈출문 작성시. 탈출문 넣어 줄 위치를 프로그램 실행순서에 주의해서 알맞은 위치에 잘 넣을 수 있도록하기.
1. break ( 참고 클래스: BreakEx01, BreakEx02, BreakEx03, Quiz17 )
-가장 가까운 반복문에서 빠져나옴.
-중첩 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(label) 을 붙이고, "break 이름;"을 사용하면 됩니다.
사용예시) 이름:for(){break 이름;}
2. continue ( 참고 클래스 : CountinueEx01 )
-다음 반복으로 pass : 즉 continue; 다음의 내용들은 건더띄고 바로 다음 반복회차로 넘어감.
- continu; 에서 밑에 내용을 건너 뛰고 지정한 이름의 위치로 가는 법.
바깥에 옮겨갈 위치 앞에 지정할 이름: 실행문() -> 이렇게 지정해주고
continue 이름; 작성.
그러면 continue 지정 이름; 을 만나면 지정한 이름의 실행문으로 가서 거기서 부터 다시 프로그램을 실행함.
-continue 사용은 for문에서 더 쉬움.
-while 문에서 continue 사용시
int i = 1; 이거는 while 문 밖에다가(위에) 만들어주고
i++; while 문 안에서 이 증감식의 위치는 프로그램 진행순서에 주의해서 알맞은 위치에 넣어주도록 해야함.
3. return
-return; 이 자리에서 바로 Main 을 종료.
-아직 몰라도됨. 메서드 배우면 그때 다시 볼것.
#배열과 탐색 ( 참고 클래스 : ArraySearch , ArraySearch2, ArraySearch3, ArraySort-배열의 정렬 )
*순차탐색 = 순차적으로 탐색
*이진 탐색 = binary search( 탐색 과정 이해가 어려우면 업다운 게임 생각하면 됨.)
-절반으로 나눠가며 찾아가는 과정, 순차탐색보다 훨씬 속도가 빠름.
-사용조건 -> 순서대로 나열된 데이터
- 반복조건 -> while(low <= high)
*배열의 정렬
-정렬 하는 방법은 7가지가 있음. 다 알 필요는 없음.
- 선택정렬 : 조금 느린편이지만 가장 쉬운 정렬 방법 -> 프로그램이 커지면 너무느려진다는게 단점.
선택정렬 사용 예시)
int [] arr = {5, 23, 1, 43, 100, 200, 40};
for(int i = 0; i < arr.length - 1; i++) { //요거는 선택정렬하는 내용.
for(int j = i + 1; j < arr.length; j++) { j= i + 1 이 되어야하는 이유는. i가 들어가야 이 for문이 돌아가기 때문.
if(arr[i] < arr[j]) {//오름차순, 내림차순 결정해주는 부등호!
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
- 퀵정렬 : 가장 빠른 정렬. ( 이진 탐색도 여기에 속함.)
- Arrays.sort(arr); (가장 빠른 정렬 실행문.)
+추가정보.
- 문자열을 비교할 때 사용하는 것. (문자열이 서로 같은지 다른지 비교구문)
문자열(지정변수).equals("홍길동") -> 일단 암기.
<기억해둘 정보>
- if 문에서 실행문이 1개라면 이렇게도 사용가능.
예시) it( i == 5 ) break;
- scan.close; 해주는 이유는?
입력을 해야하는 구간이 여러 구간이 있다고 가정했을 때,
한 스캐너가 입력을 하고자 하는 해당구간에서 입력을 끝내지 않고 다음 구간까지 입력을 읽어내게하지 않기위함.
(=파일을 읽을 때 항상 Scanner 를 닫는 것이 좋습니다. 사용하지 않는 입력 또는 출력 스트림이 열리지 않도록합니다.)
- : 이거는 콜론이라고 읽음.
<오늘의 숙제>
-백준 단계별 문제풀기에서 1차원 배열문제들 다 풀기.