대게 프로그램에서 각 문장들은 위에서 아래로 순차적으로 실행된다. 이 때 제어문(Control Statement)을 사용하여 각 문장들의 실행 순서를 변경할 수 있다. 아래는 프로그램에서 나타나는 3가지의 제어 구조이다.
< 순차 구조 >
◆ ─> 『문장 A』 ─> 『문장 B』 ─> ◆
< 선택 구조 >
┌ true ─> 『문장 A』 ─┐
◆ ─> 【조건식】 ┤ ├◆
└ false ─> 『문장 B』 ─┘
< 반복 구조 >
┌ false ─────────> ◆
◆ ┬> 【조건식】 ─ true ─> 『문장 A』 ┐
└──────<───────┘
제어문은 크게 조건문과 반복문으로 나뉘어 진다. 조건식의 산출값은 true 나 false 가 나오게 해야 한다.
▶ 조건문 : 조건에 따라 여러 개의 실행문(실행 경로) 중 하나(특정 경로)를 선택해야 하는 경우
1. if 문
# 기본 형태
문장1; // 조건식이 true 면 실행
# 조건에 따라 두 개 이상의 문장이 실행되어야 할 경우
if ( 조건식 ) {
문장1; // 조건식이 true 면 실행
# 중첩 if 문
문장1; // 조건식2가 true 면 실행
문장1; // 조건식2가 true 면 실행
문장2;
if ( 조건식3 ) {
문장3; // 조건식3이 true 면 실행
}
}
}
2. if-else 문
# 기본 형태
if ( 조건식 )
문장1; // 조건식이 true 면 실행
else
문장2; // 조건식이 false 면 실행
# 조건에 따라 두 개 이상의 문장이 실행되어야 할 경우 - 복합문(Compound Statement)
if ( 조건식 ) {
문장 1; // 조건식이 true 면 실행
문장 2; // 이러한 문장 그룹핑을 복합문 또는 블록(block)이라고 한다.
}
else {
문장 3; // 조건식이 false 면 실행
# 간단한 조건문일 경우 조건 연산자로도 표현이 가능하다.
System.out.println( x > 50 ? "x = 50" : "x != 50");
# 중첩 if-else 문
if ( 조건식1 ) {
문장 1; // 조건식1이 true 면 실행
if ( 조건식2 ) {
문장 2; // 조건식2가 true 면 실행
문장 3;
}
else {
문장 4; // 조건식2가 false 면 실행
}
else {
문장 3; // 조건식1이 false 면 실행
3. switch 문
# switch 문은 여러 개의 실행문 중 해당 조건에 맞는 실행문을 선택한다.
# 기본 형태
number = 5;
switch( number ) { // switch 안의 괄호(수식)는 문자나 문자열도 가능하다.
case 1 :
문장1;
break; // break; 문장은 빠져나가는 것으로 없을 경우 아래의 case 도 실행된다.
case 2 :
문장2;
continue; // continue; 문장은 다시 switch(수식) 문으로 돌아가는 것으로 break; 문장과는 다르다.
case 3 :
문장3;
break;
default : // switch 안에 수식의 결과가 어떤 case 문에도 해당되지 않는 경우에 실행된다.
문장4; // 예상치 못한 결과에 대비하여 default문은 작성하는 것이 좋다. (작성 여부는 자유)
break;
}
▶ 반복문 : 어떤 조건이 유지되거나 정해진 횟수만큼 문장을 반복(Looping)해야 하는 경우
1. while 문
# 조건식이 참이면 블록을 반복적으로 실행한다.
while ( 조건식 ) {
반복문장;
}
# 무한 루프
while (true) {
문장1;
문장2;
문장3;
}
2. do-while 문
# 문장을 우선 실행한 뒤에 조건식을 검사한다.
# 기본 형태 - 끝에 세미콜론(;) 필수.
do {
반복문장1; // 처음에는 무조건 실행!
} while ( 조건식 );
3. for 문
# 정해진 횟수만큼 반복할 때 사용된다.
# 기본 형태
- 초기식 → 조건식 ─ true → 문장1; → 문장2; → 증감식 → 조건식 ─ true → 문장1; → 문장2; → 증감식
→ 조건식 ─ false → 반복문 종료
for ( 초기식(1) ; 조건식(2) ; 증감식(5) ) { // 괄호 안은 처음 루프돌 때 순서입니다.
문장1; (3)
문장2; (4)
}
# 예제
for ( int i = 0; i < 5; i++ ) {
System.out.println(" i 의 값은 : "+ i);
}
# 무한 루프
for ( ; ; ) {
문장1;
문장2;
}
'Programming Language > JAVA' 카테고리의 다른 글
7. Class and Object - 클래스와 객체 (+ 쓰레기 수집) (0) | 2017.04.06 |
---|---|
6. About Java and Exception - 예외 (0) | 2017.03.31 |
4. Operator and Precedence - 연산자와 우선 순위 (0) | 2017.03.23 |
3. Promotion, Casting - 타입 변환 (0) | 2017.03.23 |
2. Variable, Constant, Type - 변수, 상수, 자료형 (0) | 2017.03.21 |