04 제어문과 제어키워드
4-1.제어문의 개요 및 선택제어문 (if, switch)
- 제어의 의미는 프로그램 실행 순서를 제어하는 것을 의미한다.
- 제어문은 5가지, 제어 키워드는 2가지가 존재한다.
- 중괄호의 생략 의미는 결국 컴파일러에 의해 삽입이 된다. (그러나, 실행문이 1개인 경우이므로 실행문이 2개들어가면 첫번째 실행문만 제어문이 {}안에 포괄하고 있는 것이다.
- 조건식에는 꼭, true 와 false만 올 수 있다는 것을 기억하자.
- if와 else 는 꼭 하나이고, else if는 여러개 가능하다.
- ★ 참이 나오는 순간 바로 실행문 출력후 조건문을 종료한다. (즉, 조건문이 동시에 true, true가 나올수 없다.)
Tip
- (70 <= a < 80)과 같은 표현은 불가능
- (70 <= a < 80) 을 (a>=70 && a < 80)으로 표현해야한다.
- switch의 역할은 특정 위치로 점프 시키는 역할 (즉, 점프만 시키면 스위치의 역할은 끝이난다.)
- break의 의미 : if문을 제외한 가장 가까운 중괄호({}) 1개를 탈출 => break가 존재하지 않으면 점프 한 지점부터 끝까지 case 출력문이 모두 출력된다.
- 의도적 break 미사용 : 하나의 실행문에 break을 사용하지 않고 여러 개의 case를 연결하는 경우 코드가 간결해질 수 도 있다.
- 어떤 위치값을 제외한 몇개의 위치값이 동일한 결과값을 출력하고 싶을 때 묶어서 하나의 출력문만 사용하면 break를 여러개 쓰지 않고도 동일한 결과값을 출력할 수 있다.
Quiz : Swithch과 if문 사이의 성능 차이가 있을까?
=> 데이터가 많을 수록 switch가 좀 더 빠르다.
=> if문은 조건을 따지기 때문에 아래의 조건일수록 속도가 더 오래걸리지만, switch문은 모든 case의 속도가 동일하다.
=> 엄청난 차이는 아니다.
4-2. 반복제어문 (for, while, dowhile)
- 조건식이 false인 타이밍이 for문이 끝나는 타이밍이다.
- for문이 무한루프 이더라도, 실행내용 안에 break가 존재하면 탈출할수 있다.
- 무한루프 for문은 보통 for ( ; ; )로 나타낸다 => 초기식과 증감식이 의미가 없기 때문이다.
- while문을 무한루프로 만들것이 아니라면 일반적으로 실행내용안에 증감식을 통해 조건식 false로 만들 수 있게 사용한다.
- 초기식은 while문 바깥에 존재해야한다. 안에 있으면 반복문을 돌때마다 다시 초기화 되기 때문이다.
- while문에서는 조건식을 생략할 수 없다.
Tip
- 무한루프가 아닌 경우 while 문에는 for문과 같이 초기식, 조건식, 증감식이 모두 포함되어야 함
- do while은 일단 실행하고, 그 다음 조건식을 따진다.
- 즉, 무조건 한번은 실행내용이 실행된다.
- Tip : do-while 문과 while 문은 반복횟수가 1회 이상일때는 동일한 결과 (반복횟수가 0이면 while문은 아무것도 출력하지 않는다.) => 1회이상일때는 반복횟수가 동일하다!! do while이 한번더 돌지 않는다.
<제어문의 중복>
4-3. 제어키워드 (break, continue)
- break와 continue
- 문장의 형식이 있지는 않다.
- 중괄호 1개를 탈출하는 것이다.
- break라는 것은 중괄호 한개만 탈출한다는 것을 의미한다. => 그렇다면 제어문이 중복일 때 안의 중복만 탈출하게 된다.
Quiz : 두개의 중괄호를 한번에 탈출하고 싶다면?
- 위의 방식은 개발자들이 편리하게 사용하기 위해 쓰는 방법이다.
- 이 방법은 정석적으로 두개의 중괄호를 탈출하고 싶을 때 사용하는 방법이다.
- 즉, 레이블이란 깃발을 의미한다.
- 레이블은 다중반복문일때 사용하기 편리하고, 위의 i=100처럼 조건보다 큰 값을 설정하는 것은 두개의 반복문일때 사용하기 좋다.
- 반복문에서 닫힌 중괄호 (})의 역할은 다시 위로 올리는 의미이다.
- continue는 닫힌 중괄호와 대치되는 개념이므로 즉, 다시 위로 올려 닫힌 중괄호인 것처럼 동작한다.
- continue의 사용 예는 어떤 조건을 제외하고 싶을 때 사용하기 좋다. (마치 pass와 같은 기능)
- continue 또한 레이블을 사용하여 이중반복문을 나올 수 있다.
https://www.youtube.com/@doit4312/playlists
Do it 자바 완전 정복 동영상 강의
Do it 자바 완전 정복 동영상 강의입니다.
www.youtube.com
위 강의를 참고하여 작성하였습니다.