반응형
* 지금까지 코드의 실행 흐름은 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었지만, 때로는 조건에 따라 문장을 건너뛰고, 때로는 같은 문장을 반복해서 수행해야 할 때가 있다. 이처럼 프로그램의 흐름( flow )을 바꾸고 역할을 하는 문장들을 제어문이라고 한다.
* 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다.
1. 조건문 if( if, if-else, if-else if-else ), switch
- 조건문은 조건식과 문장을 포함하는 블록 {}으로 구성되어 있으며, 연산 결과에 따라 실행할 문장이 달라져서 프로그램의 실행 흐름을 변경할 수 있다.
- 조건문은 if문과 swith문 두 가지가 있으며 주로 if문이 많이 사용된다.
- if문
if문은 가장 기본적인 조건문이며, 조건식과 괄호 {}로 이루어져 있다.
if ( 조건식 ) {
// 조건식이 참( true ) 일 때 수행될 문장들을 적는다.
}
==> 만일 if 조건식이 참이면 괄호 {}안의 문장들을 수행해라.
- 조건식
- 조건식이란 참과 거짓을 판명할 수 있는 식
- if문에 사용되는 조건식은 일반적으로 비교연산자와 논리 연산자로 구성된다.
- 조건식을 작성할 때 실수하기 쉬운 것이 등가비교연산자( == ) 대신 대입 연산자( = )를 사용하는 것이다. - 블록 {}
- 괄호 {}를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데 이것을 블록이라 한다.
- 블록은 { 로 시작해서 } 로 끝나는데 } 다음에 ; 를 붙이지 않는 것을 주의해야 한다.
- 조건식
- if-else
if ( 조건식 ) {
// 조건식이 참 ( true ) 일 때 수행될 문장들
} else {
// 조건식이 거짓 ( false ) 일 때 수행될 문장들
}
- if-else if
if ( 조건식 1 ) {
// 조건식 1이 참 ( true ) 일 때 수행될 문장들
} else if ( 조건식 2 ) {
// 조건식 1이 거짓 ( false )이고 조건식 2가 참일 때 수행될 문장들
} else if ( 조건식 3 ) {
// 조건식 1, 2가 거짓 ( false )이고 조건식 3이 참 ( true ) 일 때 수행될 문장들
} else {
// 조건식 1, 2, 3 ... 이 모두 거짓 ( false ) 일 때 수행될 문장들
}
- 중첩 if문
if ( 조건식 1 ) {
// 조건식 1이 참 ( true ) 일 때 수행될 문장들
if ( 조건식 2 ) {
// 조건식 1, 2가 모두 참 ( true ) 일 때 수행될 문장들
} else {
// 조건식 1은 참 ( true )인데, 조건식 2가 거짓 ( false ) 일 때 수행될 문장들
}
} else {
// 조건식 1이 거짓 ( false )일 때 수행될 문장들
}
- switch
- if 문은 조건식의 결과가 참과 거짓 두가지 밖에 없기 때문에 경우의 수가 많아질수록 else if를 계속 추가해야 하며 조건식이 많아져서 복잡해지고, 여러 개의 조건식을 계산하므로 처리시간도 많이 걸린다.
- 이러한 if문과 달리 switch문은 단 하나의 표현식으로 많은 경우의 수를 처리할 수 있고 표현도 간결하므로 알아보기 쉽다.
switch ( 표현식 ) {
case 값1 :
// 표현식의 결과가 값 1과 같은 경우 수행될 문장
break;
case 값2 :
// 표현식의 결과가 값 2와 같은 경우 수행될 문장
break;
default :
// 표현식의 결과가 일치하는 case문이 없을 때 수행될 문장들
}
① 표현식을 계산한다.
② 표현식의 결과와 일치하는 case문으로 이동한다.
③ 이후의 문장들을 수행한다.
④ break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.
2. 반복문 for, while, do-while
- 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류는 for문, while문 그리고 while문의 변형인 do-while문이 있다.
- for문이나 while문에 속한 문장은 조건에 따라 단 한 번도 실행이 안 될 수도 있으나, do-while은 최소한 한 번의 수행이 보장된다.
- for문
- for문은 반복 횟수를 알고 있을 때 적합하다.
for ( 초기식; 조건식; 증감식 ) {
// 조건식이 참일 때 반복 수행할 문장
}
for ( int i = 0; i <= 5; i++ ) {
// 6번 반복 (0 1 2 3 4 5)
}
① 초기식
- 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행한다.
② 조건식
- 조건식의 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단하고 for문을 벗어난다.
- 조건식을 잘못 작성하면 블록 {} 내의 문장이 한번도 수행되지 않거나 영원히 반복되는
무한루프( infinite loop )에 빠지기 쉬우므로 주의해야 한다.
③ 증감식
- 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다.
- 매 반복마다 변수의 값이 증감식에 의해서 점진적으로 변하다가 결국 조건식이 false가 되어
for문을 벗어나게 된다
* 향상된 for문( enhanced for statement )
- 배열과 컬렉션에 저장된 요소에 접근 할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 있는데 이를 향상된 for문이라고 한다.
for ( 타입 변수명 : 배열 또는 컬렉션 ) {
//반복할 문장
}
- 위의 문장에서 타입은 배열 또는 컬렉션의 요소의 타입이어야 한다.
- 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장된다.
- while문
- for문에 비해 while문의 구조는 간단하며 if문처럼 조건식과 블록만으로 이루어져 있다.
- while문은 조건식이 참인동안, 즉 조건식이 거짓이 될 때까지 블록 내의 문장을 반복한다.
while ( 조건식 ) {
// 반복 수행할 문장
}
- do-while문
do {
// 조건식의 결과가 참일 때 수행될 문장들을 적는다.
// 단, 한번은 무조건 실행된다.
} while( 조건식 );
- do-while문은 while문의 변형으로 기본적인 구조는 while문과 같으나 조건식과 블록의 순서를 바꿔놓은 것이다.
- 즉, 블록을 먼저 실행한 후에 조건식을 평가한다.( 무조건 한 번은 실행된다. )
- break
- break문은 자신이 포함된 가장 가까운 반복문을 벗어나며 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 하게 하는 예약어이다.
- continue
- continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue를 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
- for문의 경우는 증감식으로, while문과 do-while문의 경우는 조건식으로 넘어간다.
반응형
'웹개발 > JAVA' 카테고리의 다른 글
[JAVA] 객체지향 언어, 클래스와 객체 (0) | 2022.01.16 |
---|---|
[JAVA] 배열( array ) (0) | 2022.01.14 |
[JAVA] 연산자( Operator ) (2) | 2022.01.08 |
[JAVA] 입력메서드( Scanner ), 출력메서드( Print ) (0) | 2022.01.07 |
[JAVA] 변수 및 형변환( casting ) (1) | 2022.01.06 |