참조 : Do it Java 완전정복
http://www.yes24.com/Product/Goods/103389317
제어문
- 프로그램의 처리순서를 바꾸는 것
- 모두 중괄호를 포함 하고 있으나 , 실행문이 1개일 때 중괄호를 생략할 수 있다
- 중괄호 생략시, 컴파일러가 자동으로 삽입하나 하나의 실행 구문만 감싼다.
if 선택 제어문
1. if 단일 구문
if 조건식 {
실행구문; // 조건식이 true일 때만 실행
}
- 조건식은 boolean 타입(true,false)만 가능
- 조건식 = false 일 경우 중괄호안 실행 X
2. if - else 구문
if(조건식) {
실행구문; // 조건식 true일경우 실행
}
else {
실행구문; // 조건식 false일 경우 실행
}
3. if-else if -else 구문
if(조건식 1) {
실행 구문; // 조건식이 true일 때 실행한 후 제어문 탈출
}
else if (조건식 2) {
실행 구문; // 조건식 2가 true일 때 실행한 후 제어문 탈출
}
...
else if (조건식 N) {
실행구문 ; // 조건식 N이 true일 때 실행한후 제어문 탈출
}
else {
실행 구문 // 모든 조건식이 false일 때 만 실행
}
Switch 선택 제어문
- switch문은 점프 위치 변숫값에 따라 특정 위치(case)로 이동해 구문실행
- 점프 위치는 ‘case 위칫값:’으로 설정
- 콜론(:)문자가 붙은 값은 이동할 위치를 가리키는 일종의 팻말 역할
- default: if 문의 else 와 비슷한 기능
- 구조 switch(점프 위치 변수) { case 위칫값 1: // 점프 위치 변수 = 위칫값 1이면 이 위치로 이동 실행구문; case 위칫값 2: // 위칫값 2면 이위치로 이동 .. case 위칫값 n: 실행 구문; default: //일치하는 위칫값이 없을 때 이 위치로 이동 실행 구문; // 생략 가능 } ex ) case 점프 위치 변숫값이 2일 경우 2부터 1줄씩 차례대로 실행
- break 제어 키워드 - if 문을 제외한 가장 가까운 중괄호{}를 탈출
- 위칫값으로 정수,문자,문자열만 사용가능
for 반복 제어문
for(초기식; 조건식; 증감식) {
실행 구문; 조건식이 true인 동안 실행
}
- 조건식이 true인동안 실행 구문 계속 반복. 조건식이 false가 나오면 for문 빠져 나감.
- for문이 끝나는 위치는 닫힌 중괄호가 아니라 조건식이다.
- 초기식에 포함된 변수는 for문의 내외부에서 선언가능
- 외부에서 변수 선언하고 초기식에서 초기화만 했을때, for 문이 종료된 이후에도 변수는 사라지지 않는다.
- for 문의 초기식 안에서 선언 했을 때는 for 문의 내부에서만 사용가능.
- 초기식과 증감식은 쉼표로 구분해 여러개를 동시에 표기가능
- for 문의 동작순서
- 초기식 → 조건식(참) → 실행구문
- 중괄호 닫힘 → 증감식 → 조건식(참) → 실행 구문
- 중괄호 닫힘 → 증감식 →조건식(거짓) → 종료
- 조건식을 생략하면 컴파일러는 자동으로 true 입력(무한 루프)
While 반복 제어문
- 구조 : 초기식; while(조건식) { 실행구문; 증감식; }
- 초기식과 증감식은 생략가능하지만, 대부분 사용
- 초기식은 while 문 실행 이전에 정의 되어야 한다.
- 동작순서
- 조건식(참) → 싫애구문
- 중괄호 닫힘 → 조건식(참) → 실행 구문
- 중괄호 닫힘 → 조건식(거짓) → 종료
do-while 반복 제어문
- 구조 초기식; do { 실행 구문 ; // 최초 1회는 무조건 실행 증감식; } while(조건식); // 중괄호가 없어 세미콜론으로 끝남
- 순서
- 실행구문
- 조건식(참) → 실행 구문
- 조건식(거짓) → 종료
제어 키워드
break 제어 키워드
- if 문을 제외한 가장 가까운 중괄호를 탈출.
- 반복문안에 if문과 함께 break 사용 for(int i = 0; i < 10; i++) { if(i == 5) { break; // if문으로 break 키워드 실행할 조건 설정 } System.out.println(i); } → break 로 탈출하는 중괄호
- 이중 for문 한번에 탈출하기 위해 break 수행전 바깥쪽 조건식이 false가 되도록 i 값을 큰값으로 변경하기
- 아니면 break + Label(레이블) 사용
-
레이블명 임의로 지정 가능
-
리이블명 다음에 반드시 콜론(:)표시
ex)
out: // 레이블 위치 지정(break하고자 하는 반복문 앞에 레이블 표기)
for (int i = 0; i < 1; i++) {
for (int j = 0; j < 10; j ++) {
if ( j == 3)
break out; //out 레이블이 달린 반복문 탈출
System.out.println(i + “ , “ + j);
}
} // break out으로 탈출하는 중괄호
continue 제어 키워드
- continue는 반복 제어문의 닫힌 중괄호(}) 역할을 하는 제어 키워드다. for(int i = 0; i < 10; i ++) { if(i ==5) { continue; //if 문으로 continue를 실행할 조건 설정 } System.out.println(i); } // continue가 대체하는 중과호
- if문을 제외한 가장 가까운 중괄호의 닫힌 괄호의 역할 수행
- continue 또한 Labe 사용가능 Pos1: // 레이블 위치 지정 for(int i = 0; i < 5; i ++) { for(int j = 0; j < 5; j++) { if(j ==3) { continue POS1; // POS1 레이블이 달린 반복문의 닫힌 중괄호 대체 } System.out.println(i + “, “ + j); }
} → continue POS1로 대체하는 중괄호